コード例 #1
0
        public void Test_Add()
        {
            var mockReplacer1 = new Mock <IDataReplacer>();
            var mockReplacer2 = new Mock <IDataReplacer>();

            IDataReplacer next1 = null, next2 = null;

            mockReplacer1.SetupSet(x => x.NextReplacer = It.IsAny <IDataReplacer>()).Callback <IDataReplacer>(value => next1 = value);
            mockReplacer1.SetupGet(x => x.NextReplacer).Returns(() => { return(next1); });

            mockReplacer2.SetupSet(x => x.NextReplacer = It.IsAny <IDataReplacer>()).Callback <IDataReplacer>(value => next2 = value);
            mockReplacer2.SetupGet(x => x.NextReplacer).Returns(() => { return(next2); });

            var chain = new ReplacerChain();

            chain.Add(mockReplacer1.Object);
            Assert.Equal(mockReplacer1.Object, chain.Root);
            Assert.Null(next1);
            Assert.Null(next2);

            chain.Add(mockReplacer2.Object);
            Assert.Equal(mockReplacer1.Object, chain.Root);
            Assert.Equal(mockReplacer2.Object, next1);
            Assert.Null(next2);
        }
コード例 #2
0
        public void Test_Last()
        {
            var mockReplacer1 = new Mock <IDataReplacer>();
            var mockReplacer2 = new Mock <IDataReplacer>();

            mockReplacer1.SetupGet(x => x.NextReplacer).Returns(mockReplacer2.Object);
            mockReplacer2.SetupGet(x => x.NextReplacer).Returns((IDataReplacer)null);

            var chain = new ReplacerChain();

            chain.Root = null;
            Assert.Null(chain.Last);

            chain.Root = mockReplacer1.Object;
            Assert.Equal(mockReplacer2.Object, chain.Last);
        }
コード例 #3
0
        public void Test_GetPrevious()
        {
            var mockReplacer1 = new Mock <IDataReplacer>();
            var mockReplacer2 = new Mock <IDataReplacer>();

            mockReplacer1.SetupGet(x => x.NextReplacer).Returns(mockReplacer2.Object);
            mockReplacer2.SetupGet(x => x.NextReplacer).Returns((IDataReplacer)null);

            var chain = new ReplacerChain();

            chain.Root = mockReplacer1.Object;

            var prev = chain.GetPrevious(null);

            Assert.Null(prev);

            prev = chain.GetPrevious(mockReplacer1.Object);
            Assert.Null(prev);

            prev = chain.GetPrevious(mockReplacer2.Object);
            Assert.Equal(mockReplacer1.Object, prev);
        }
コード例 #4
0
        public void Test_GetNext()
        {
            var mockReplacer1 = new Mock <IDataReplacer>();
            var mockReplacer2 = new Mock <IDataReplacer>();

            mockReplacer1.SetupGet(x => x.NextReplacer).Returns(mockReplacer2.Object);
            mockReplacer2.SetupGet(x => x.NextReplacer).Returns((IDataReplacer)null);

            var chain = new ReplacerChain();

            chain.Root = mockReplacer1.Object;

            var next = chain.GetNext(null);

            Assert.Null(next);

            next = chain.GetNext(mockReplacer1.Object);
            Assert.Equal(mockReplacer2.Object, next);

            next = chain.GetNext(mockReplacer2.Object);
            Assert.Null(next);
        }
コード例 #5
0
        public void Test_ToList()
        {
            var mockReplacer1 = new Mock <IDataReplacer>();
            var mockReplacer2 = new Mock <IDataReplacer>();

            mockReplacer1.SetupGet(x => x.NextReplacer).Returns(mockReplacer2.Object);
            mockReplacer2.SetupGet(x => x.NextReplacer).Returns((IDataReplacer)null);

            var chain = new ReplacerChain();

            chain.Root = null;

            var list = chain.ToList();

            Assert.Empty(list);

            chain.Root = mockReplacer1.Object;

            list = chain.ToList();
            Assert.Equal(2, list.Count);
            Assert.Equal(mockReplacer1.Object, list[0]);
            Assert.Equal(mockReplacer2.Object, list[1]);
        }