// [TestCase(0, -1)] // [TestCase(-1, 0)] // [TestCase(-1, -1)] public void SkipOperator_SkipNNumberOfCalls(int skipNumber, int callTimes) { int index = 0; ObservableProperty <int> property = new ObservableProperty <int> { Value = -1 }; property.Skip(skipNumber).Subscribe(i => index++); for (int i = 0; i < callTimes; i++) { property.Value = i; } int expectedResult = callTimes - skipNumber + 1; // For negative numbers // if (skipNumber <= 0) // { // expectedResult = callTimes + 1; // } // // if (callTimes <= 0) // { // expectedResult = 0; // if (skipNumber <= 0) // { // expectedResult = 1; // } // } Assert.AreEqual(expectedResult, index); }
public void OnceOperator_UsingSkipOperator_CalledOnce(int skipNumber) { int index = 0; ObservableProperty <int> property = new ObservableProperty <int>(); property.Skip(skipNumber).Once().Subscribe(i => index++); for (int i = 0; i < skipNumber + 3; i++) { property.Value = i; } Assert.AreEqual(1, index); }