public void InsertsItemInListAtTheSpecifiedIndex()
            {
                var target = new TestableSnapshottingList <object>();
                var item   = new object();

                target.Insert(0, item);

                Assert.Same(item, target.Collection[0]);
            }
            public void ResetsSnapshotSoThatItIsRecreatedAtNextRead()
            {
                var target = new TestableSnapshottingList <object>();

                target.GetSnapshot();

                target.Insert(0, null);

                Assert.Null(target.Snapshot);
            }
            public void RemovesItemAtTheSpecifiedIndexInList()
            {
                var target = new TestableSnapshottingList <object> {
                    null
                };

                target.RemoveAt(0);

                Assert.Equal(0, target.Collection.Count);
            }
            public void ReturnsIndexOfGivenItemInSnapshot()
            {
                var target = new TestableSnapshottingList <object>();
                var item   = new object();

                target.Snapshot = new List <object> {
                    item
                };

                Assert.Equal(0, target.IndexOf(item));
            }
            public void SetterReplacesItemAtTheSpecifiedIndexInList()
            {
                var target = new TestableSnapshottingList <object> {
                    null
                };
                var item = new object();

                target[0] = item;

                Assert.Same(item, target.Collection[0]);
            }
            public void GetterReturnsSnapshotItemAtSpecifiedIndex()
            {
                var target = new TestableSnapshottingList <object>();
                var item   = new object();

                target.Snapshot = new List <object> {
                    item
                };

                Assert.Same(item, target[0]);
            }
            public void CreatesCloneOfGivenList()
            {
                var target = new TestableSnapshottingList <object>();

                var item  = new object();
                var input = new List <object> {
                    item
                };
                IList <object> output = target.CreateSnapshot(input);

                Assert.Same(item, output[0]);
            }
            public void SetterResetsSnapshotSoThatItIsRecreatedAtNextRead()
            {
                var target = new TestableSnapshottingList <object> {
                    null
                };

                target.GetSnapshot();

                target[0] = new object();

                Assert.Null(target.Snapshot);
            }
Пример #9
0
            public void ResetsSnapshotSoThatItIsRecreatedAtNextRead()
            {
                var target = new TestableSnapshottingList <object> {
                    null
                };

                target.GetSnapshot();

                target.RemoveAt(0);

                Assert.IsNull(target.Snapshot);
            }
            public void LocksCollectionForThreadSafety()
            {
                Task anotherThread;
                var  target = new TestableSnapshottingList <object>();

                lock (target.Collection)
                {
                    anotherThread = TaskEx.Run(() => target.Insert(0, new object()));
                    Assert.False(anotherThread.Wait(20));
                }

                Assert.True(anotherThread.Wait(20));
            }
Пример #11
0
            public void SetterLocksCollectionForThreadSafety()
            {
                Task anotherThread;
                var  target = new TestableSnapshottingList <object> {
                    null
                };

                lock (target.Collection)
                {
                    anotherThread = TaskEx.Run(() => target[0] = new object());
                    Assert.IsFalse(anotherThread.Wait(20));
                }

                Assert.IsTrue(anotherThread.Wait(20));
            }
Пример #12
0
            public void LocksCollectionForThreadSafety()
            {
                Task anotherThread;
                var  target = new TestableSnapshottingList <object> {
                    null
                };

                lock (target.Collection)
                {
                    anotherThread = Task.Run(() => target.RemoveAt(0));
                    Assert.False(anotherThread.Wait(20));
                }

                Assert.True(anotherThread.Wait(20));
            }
            public void CreatesNewList()
            {
                var target = new TestableSnapshottingList <object>();

                Assert.NotNull(target.Collection);
            }