Пример #1
0
            public void ShouldBeAbleToRemoveItem(int times)
            {
                var set = new ConcurrentOrderedSet <int> {
                    0, 1, 2, 3
                };

                for (var j = 0; j < times; j++)
                {
                    for (var i = 0; i < set.Count; i++)
                    {
                        var real = set.ToList()[i];
                        real.Should().Be(i);
                    }
                }

                set.Remove(3);

                for (var j = 0; j < times; j++)
                {
                    set.Contains(3).Should().BeFalse();

                    for (var i = 0; i < set.Count; i++)
                    {
                        var real = set.ToList()[i];
                        real.Should().Be(i);
                    }
                }
            }
Пример #2
0
            public void ShouldBeAbleToAccessNewlyAddedItem(int times)
            {
                var set = new ConcurrentOrderedSet <int> {
                    0, 1, 2, 3
                };

                // we loop several turns on the full set
                for (var j = 0; j < times; j++)
                {
                    for (var i = 0; i < set.Count; i++)
                    {
                        var real = set.ToList()[i];
                        real.Should().Be(i);
                    }
                }

                // we add a new item into the set
                set.Add(4);

                // we loop again and everything is in set
                for (var j = 0; j < times; j++)
                {
                    // first we got the newly added out
                    set.Contains(4).Should().BeTrue();

                    for (var i = 0; i < set.Count; i++)
                    {
                        var real = set.ToList()[i];
                        real.Should().Be(i);
                    }
                }
            }
Пример #3
0
            public void ShouldAddNew()
            {
                // ReSharper disable once UseObjectOrCollectionInitializer
                var set = new ConcurrentOrderedSet <int>();

                set.Add(1);
                set.Count.Should().Be(1);
                set.ToList().Should().ContainInOrder(1);
            }
Пример #4
0
            public void ShouldNotMoveIfNotExists()
            {
                var set = new ConcurrentOrderedSet <int> {
                    0, 1
                };

                set.Remove(3);
                set.Count.Should().Be(2);
                set.ToList().Should().ContainInOrder(0, 1);
            }
Пример #5
0
            public void ShouldRemove()
            {
                var set = new ConcurrentOrderedSet <int> {
                    0, 1, 2, 3
                };

                set.Remove(0);
                set.Remove(2);
                set.ToList().Should().ContainInOrder(1, 3);
            }
Пример #6
0
            public void ShouldProvideSnapshotWhenEmpty()
            {
                // Given
                var set = new ConcurrentOrderedSet <int>();

                // When
                var snapshot = set.Snapshot;

                // Then
                snapshot.Should().BeEmpty();
            }
Пример #7
0
            public void ShouldNotAddIfAlreadyExists()
            {
                // ReSharper disable once UseObjectOrCollectionInitializer
                var set = new ConcurrentOrderedSet <int> {
                    0, 1, 2, 3
                };

                set.Add(0);
                set.Add(1);
                set.Add(2);
                set.Add(3);
                set.Count.Should().Be(4);
                set.Should().ContainInOrder(0, 1, 2, 3);
            }
Пример #8
0
            public void ShouldProvideSnapshot()
            {
                // Given
                var set = new ConcurrentOrderedSet <int> {
                    0, 1, 2
                };

                // When
                var snapshot = set.Snapshot;

                // Then
                snapshot.Should().HaveCount(3);
                snapshot.Should().ContainInOrder(0, 1, 2);
            }
Пример #9
0
            public void ShouldClear()
            {
                // Given
                var set = new ConcurrentOrderedSet <int> {
                    0, 1, 2, 3
                };

                set.Should().NotBeEmpty();

                // When
                set.Clear();

                // Then
                set.Should().BeEmpty();
            }
Пример #10
0
            public void ShouldProvideSnapshotAfterUpdate()
            {
                // Given
                var set = new ConcurrentOrderedSet <int> {
                    0, 1, 2
                };

                // When
                set.Remove(1);
                set.Add(42);
                var snapshot = set.Snapshot;

                // Then
                snapshot.Should().HaveCount(3);
                snapshot.Should().ContainInOrder(0, 2, 42);
            }