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); }
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); }
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); }
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); }
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]); }