예제 #1
0
        public void Enumerator_MoveNext_sets_Current_to_NextBigger_Bucket()
        {
            //Arrange
            var biggerBucket = new SyncableBucket {
                Id = 42
            };
            var smallerBucket = new SyncableBucket {
                Id = 2, NextBiggerBucket = biggerBucket
            };
            var buckets = new[]
            {
                smallerBucket,
                biggerBucket
            };
            var dataCreator = new Mock <IDataCreator <SyncableBucket> >();
            var testing     = new LinkedSyncableBuckets(dataCreator.Object, buckets);
            var enumerator  = testing.GetEnumerator();

            //Act
            _ = enumerator.MoveNext();
            Assert.AreEqual(smallerBucket, enumerator.Current, "Test not valid. If the smaller bucket is not the first one, how are we supposed to test what follows after it?");
            _ = enumerator.MoveNext();

            //Assert
            Assert.AreEqual(biggerBucket, enumerator.Current, $"Expected Bucket with Id {biggerBucket.Id}, got Id {enumerator.Current.Id}");
        }
예제 #2
0
        public void Enumerator_Reset_throws_NotSupportedException()
        {
            //Arrange
            var dataCreator = new Mock <IDataCreator <SyncableBucket> >();
            var testing     = new LinkedSyncableBuckets(dataCreator.Object, new List <SyncableBucket>());
            var enumerator  = testing.GetEnumerator();

            //Act & Assert
            Assert.ThrowsException <NotSupportedException>(() => enumerator.Reset());
        }
예제 #3
0
        public void Enumerator_MoveNext_works_if_created_without_collection()
        {
            //Arrange
            var dataCreator = new Mock <IDataCreator <SyncableBucket> >();
            var testing     = new LinkedSyncableBuckets(dataCreator.Object, new List <SyncableBucket>());
            var enumerator  = testing.GetEnumerator();

            //Act
            _ = enumerator.MoveNext();

            //Assert: It didn't throw = success
        }
예제 #4
0
        public void Enumerator_Current_starts_as_null()
        {
            //Arrange
            var buckets = new[]
            {
                new SyncableBucket {
                    Id = 1
                }
            };
            var dataCreator = new Mock <IDataCreator <SyncableBucket> >();
            var testing     = new LinkedSyncableBuckets(dataCreator.Object, buckets);

            //Act
            var enumerator = testing.GetEnumerator();

            //Assert
            Assert.IsNull(enumerator.Current);
        }
예제 #5
0
        public void Enumerator_MoveNext_sets_current_null_when_the_last_element_is_passed()
        {
            //Arrange
            var buckets = new[]
            {
                new SyncableBucket {
                    Id = 1
                }
            };
            var dataCreator = new Mock <IDataCreator <SyncableBucket> >();
            var testing     = new LinkedSyncableBuckets(dataCreator.Object, buckets);
            var enumerator  = testing.GetEnumerator();

            //Act
            _ = enumerator.MoveNext();
            _ = enumerator.MoveNext();

            //Assert
            Assert.IsNull(enumerator.Current);
        }
예제 #6
0
        public void Enumerator_MoveNext_returns_true_until_the_last_element_is_passed()
        {
            //Arrange
            var buckets = new[]
            {
                new SyncableBucket {
                    Id = 1
                }
            };
            var dataCreator = new Mock <IDataCreator <SyncableBucket> >();
            var testing     = new LinkedSyncableBuckets(dataCreator.Object, buckets);
            var enumerator  = testing.GetEnumerator();

            //Act
            var firstMoveNext  = enumerator.MoveNext();
            var secondMoveNext = enumerator.MoveNext();

            //Assert
            Assert.IsTrue(firstMoveNext);
            Assert.IsFalse(secondMoveNext);
        }
예제 #7
0
        public void Enumerator_MoveNext_sets_the_first_Current_to_the_only_one_that_is_not_bigger_than_any_of_the_others()
        {
            //Arrange
            var biggerBucket = new SyncableBucket {
                Id = 42
            };
            var smallerBucket = new SyncableBucket {
                Id = 2, NextBiggerBucket = biggerBucket
            };
            var buckets = new[]
            {
                biggerBucket,
                smallerBucket
            };
            var dataCreator = new Mock <IDataCreator <SyncableBucket> >();
            var testing     = new LinkedSyncableBuckets(dataCreator.Object, buckets);
            var enumerator  = testing.GetEnumerator();

            //Act
            _ = enumerator.MoveNext();

            //Assert
            Assert.AreEqual(smallerBucket, enumerator.Current, $"Expected Bucket with Id {smallerBucket.Id}, got Id {enumerator.Current.Id}");
        }