Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Xml;
- using Moq;
- using NUnit.Framework;
- namespace MockXmlTest
- {
- [TestFixture]
- public class MyServiceTests
- {
- private MockSetup _mockSetup;
- [SetUp]
- public void Init()
- {
- _mockSetup = MockSetup.HappySetup();
- }
- [Test]
- public void MyService_Should_Return_Data()
- {
- //Arrange
- var myService = _mockSetup.MyService.Object;
- var id = 42;
- var expected = Guid.Empty.ToString();
- //Act
- var actual = myService.GetXml(id);
- //Assert
- Assert.AreEqual(expected, actual.FirstChild.InnerText);
- }
- }
- public class MyService : IMyService
- {
- public XmlDocument GetXml(int id)
- {
- //Do real stuff
- return new XmlDocument();
- }
- }
- public interface IMyService
- {
- XmlDocument GetXml(int id);
- }
- public class MockSetup
- {
- public Mock<IMyService> MyService { get; set; }
- public MockSetup()
- {
- MyService = new Mock<IMyService>();
- }
- public static MockSetup HappySetup()
- {
- var mockSetup = new MockSetup();
- var mockDoc = CreateMockDoc();
- //Matches any id of an integer, returns a XmlDocument mock
- mockSetup.MyService.Setup(m => m.GetXml(It.IsAny<int>())).Returns(mockDoc);
- return mockSetup;
- }
- private static XmlDocument CreateMockDoc()
- {
- //<Main><MyGuid>00000000-0000-0000-0000-000000000000</MyGuid></Main>
- XmlDocument mockDoc = new XmlDocument();
- XmlElement el = (XmlElement)mockDoc.AppendChild(mockDoc.CreateElement("Main"));
- el.AppendChild(mockDoc.CreateElement("MyGuid")).InnerText = It.IsAny<Guid>().ToString();
- return mockDoc;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement