 		
 		XCTAssertTrue(completed)
 	}
+
+    func testScrollViewWillBeginDragging() {
+        var completed = false
+
+        autoreleasepool {
+            let scrollView = UIScrollView()
+            var willBeginDragging = false
+
+            _ = scrollView.rx.willBeginDragging.subscribe(onNext: {
+                willBeginDragging = true
+            }, onCompleted: {
+                completed = true
+            })
+
+            XCTAssertFalse(willBeginDragging)
+
+            scrollView.delegate!.scrollViewWillBeginDragging!(scrollView)
+
+            XCTAssertTrue(willBeginDragging)
+        }
+
+        XCTAssertTrue(completed)
+    }
 	
 	func testScrollViewDidEndDragging() {
 		var completed = false

        
        XCTAssertTrue(completed)
    }
}

@objc final class MockScrollViewDelegate

        XCTAssertTrue(completed)
    }
	
    func testScrollViewWillBeginDecelerating() {
        var completed = false

        autoreleasepool {
            let scrollView = UIScrollView()
            var willBeginDecelerating = false

            _ = scrollView.rx.willBeginDecelerating.subscribe(onNext: {
                willBeginDecelerating = true
            }, onCompleted: {
                completed = true
            })

            XCTAssertFalse(willBeginDecelerating)

            scrollView.delegate!.scrollViewWillBeginDecelerating!(scrollView)

            XCTAssertTrue(willBeginDecelerating)
        }

        XCTAssertTrue(completed)
    }
	
	func testScrollViewDidEndDecelerating() {
		var completed = false
