public void ShouldCreateObjectFromXml() { string xml = "<template flag=\"testytest\" stalkflag=\"bar\" lastupdate=\"2018-03-25T16:42:30.984000Z\" immediatemail=\"true\" templateenabled=\"true\" stalkenabled=\"false\" watchchannel=\"#quux\"><searchtree><![CDATA[<true />]]></searchtree></template>"; var doc = new XmlDocument(); doc.LoadXml(xml); var snf = new Mock <IStalkNodeFactory>(); // act var fact = new TemplateFactory(this.LoggerMock.Object, snf.Object, this.AppConfigMock.Object); var template = fact.NewFromXmlElement(doc.DocumentElement); // assert Assert.IsNull(template.Description); Assert.IsNull(template.ExpiryDuration); Assert.AreEqual("testytest", template.Identifier); Assert.AreEqual("bar", template.StalkFlag); Assert.IsFalse(template.StalkIsEnabled); Assert.IsTrue(template.TemplateIsEnabled); Assert.AreEqual(new DateTime(2018, 03, 25, 16, 42, 30, 984), template.LastUpdateTime); Assert.AreEqual(template.SearchTree, "<true />"); Assert.AreEqual("#quux", template.WatchChannel); }