public void CloseBlock_ReturnsTrueAndReplacesProxyIfThereIsAReplacement() { // Arrange BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor(); Mock <LeafBlock> dummySiblingBlock1 = _mockRepository.Create <LeafBlock>(null); Mock <LeafBlock> dummySiblingBlock2 = _mockRepository.Create <LeafBlock>(null); var dummyProxyBlock = new DummyProxyBlock(null); Mock <ContainerBlock> dummyParentBlock = _mockRepository.Create <ContainerBlock>(null); dummyParentBlock.CallBase = true; dummyParentBlock.Object.Add(dummySiblingBlock1.Object); // So we can verify replacement position dummyParentBlock.Object.Add(dummyProxyBlock); dummyParentBlock.Object.Add(dummySiblingBlock2.Object); // So we can verify replacement position Mock <Block> dummyReplacementBlock = _mockRepository.Create <Block>(null); Mock <ExposedProxyBlockParser <Block, DummyProxyBlock> > testSubject = CreateMockExposedBlockParser(); testSubject.CallBase = true; testSubject.Protected().Setup <Block>("CloseProxy", dummyBlockProcessor, dummyProxyBlock).Returns(dummyReplacementBlock.Object); // Act bool result = testSubject.Object.ExposedCloseBlock(dummyBlockProcessor, dummyProxyBlock); // Assert Assert.True(result); Assert.Equal(3, dummyParentBlock.Object.Count); Assert.Same(dummySiblingBlock1.Object, dummyParentBlock.Object[0]); Assert.Same(dummyReplacementBlock.Object, dummyParentBlock.Object[1]); // Replacement must be in position of proxy it replaced Assert.Same(dummySiblingBlock2.Object, dummyParentBlock.Object[2]); }
public void CloseBlock_ReturnsFalseIfThereIsNoReplacement() { // Arrange BlockProcessor dummyBlockProcessor = MarkdigTypesFactory.CreateBlockProcessor(); var dummyProxyBlock = new DummyProxyBlock(null); Mock <ExposedProxyBlockParser <Block, DummyProxyBlock> > testSubject = CreateMockExposedBlockParser(); testSubject.CallBase = true; testSubject.Protected().Setup <Block>("CloseProxy", dummyBlockProcessor, dummyProxyBlock).Returns((Block)null); // Act bool result = testSubject.Object.ExposedCloseBlock(dummyBlockProcessor, dummyProxyBlock); // Assert Assert.False(result); }