public virtual void TestFormatEmptyAddress() { AdBasicPropertyFormatter formatter = new AdBasicPropertyFormatter(); string result = formatter.Format(GetContext("address", "AD.BASIC"), new ADImpl(this.address)); Assert.IsTrue(this.result.IsValid()); string expectedResult = "<address>" + SystemUtils.LINE_SEPARATOR + "</address>" + SystemUtils.LINE_SEPARATOR; AssertXmlEquals("empty address", expectedResult, result); // a funny case: make sure adding a null address use is like not adding one at all // (i.e., just like above) this.address.AddUse(null); AssertXmlEquals("empty address - even with \"null\" address use", expectedResult, result); this.address.AddUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.X_BasicPostalAddressUse.WORK_PLACE); result = formatter.Format(GetContext("address", "AD.BASIC"), new ADImpl(this.address)); Assert.IsFalse(this.result.IsValid()); Assert.AreEqual(1, this.result.GetHl7Errors().Count); // null not allowed for use expectedResult = "<address use=\"WP\">" + SystemUtils.LINE_SEPARATOR + "</address>" + SystemUtils.LINE_SEPARATOR; AssertXmlEquals("empty workplace address", expectedResult, result); this.result.ClearErrors(); this.address.AddUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.X_BasicPostalAddressUse.HOME); result = formatter.Format(GetContext("address", "AD.BASIC"), new ADImpl(this.address)); Assert.IsFalse(this.result.IsValid()); Assert.AreEqual(1, this.result.GetHl7Errors().Count); // null not allowed for use XmlDocument document = new DocumentFactory().CreateFromString(result); string attribute = (document.DocumentElement).GetAttribute("use"); FormatterAssert.AssertContainsSame("uses", FormatterAssert.ToSet("H WP"), FormatterAssert.ToSet(attribute)); }
public virtual void TestGetAttributeNameValuePairsIncludeUses() { TelecommunicationAddress address = new TelecommunicationAddress(); address.UrlScheme = CeRxDomainTestValues.TELEPHONE; address.Address = "value"; address.AddAddressUse(CeRxDomainTestValues.HOME_ADDRESS); IDictionary <string, string> result = new TelPhonemailPropertyFormatterTest.TestableTelPhonemailPropertyFormatter().GetAttributeNameValuePairsForTest (CreateContext("TEL.PHONE"), address, new TELImpl()); Assert.IsTrue(this.xmlResult.IsValid()); Assert.AreEqual(2, result.Count, "map size"); Assert.IsTrue(result.ContainsKey("value"), "key as expected"); Assert.AreEqual("tel:value", result.SafeGet("value"), "value as expected"); Assert.IsTrue(result.ContainsKey("use"), "use key as expected"); Assert.AreEqual("H", result.SafeGet("use"), "use as expected"); address.AddAddressUse(CeRxDomainTestValues.MOBILE_CONTACT); result = new TelPhonemailPropertyFormatterTest.TestableTelPhonemailPropertyFormatter().GetAttributeNameValuePairsForTest( CreateContext("TEL.PHONE"), address, new TELImpl()); Assert.IsTrue(this.xmlResult.IsValid()); Assert.AreEqual(2, result.Count, "map size"); Assert.IsTrue(result.ContainsKey("use"), "use key as expected"); ICollection <string> uses = FormatterAssert.ToSet(result.SafeGet("use")); FormatterAssert.AssertContainsSame("uses", FormatterAssert.ToSet("H MC"), uses); }
public virtual void TestGetAttributeNameValuePairsAllInvalidUsesForEmail() { TelecommunicationAddress address = new TelecommunicationAddress(); address.UrlScheme = CeRxDomainTestValues.MAILTO; address.Address = "value"; address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.ANSWERING_MACHINE); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.BAD); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.CONFIDENTIAL); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.DIRECT); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.EMERGENCY_CONTACT); address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.HOME); address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.MOBILE); address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.PAGER); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.PRIMARY_HOME); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.PUBLISHED); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.TEMPORARY); address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.VACATION_HOME); // invalid address.AddAddressUse(Ca.Infoway.Messagebuilder.Domainvalue.Basic.TelecommunicationAddressUse.WORKPLACE); IDictionary <string, string> result = new TelPhonemailPropertyFormatterTest.TestableTelPhonemailPropertyFormatter().GetAttributeNameValuePairsForTest (CreateContext("TEL.EMAIL"), address, new TELImpl()); Assert.IsFalse(this.xmlResult.IsValid()); Assert.AreEqual(9, this.xmlResult.GetHl7Errors().Count); // 8 bad uses + 1 for too many Assert.AreEqual(2, result.Count, "map size"); Assert.IsTrue(result.ContainsKey("value"), "key as expected"); Assert.AreEqual("mailto:value", result.SafeGet("value"), "value as expected"); ICollection <string> uses = FormatterAssert.ToSet(result.SafeGet("use")); FormatterAssert.AssertContainsSame("uses", FormatterAssert.ToSet("EC H MC TMP WP"), uses); }