예제 #1
0
        public void TestParseFacebookShopListResponse()
        {
            string xml =
                @"<roar tick=""130695522924"">
				<facebook>\
					<shop_list>
						<fbshopitem
							ikey=""shop_item_ikey1""
							description=""Blah Blah""
							label=""label""
							price=""2""
							product_url=""http://foo.bar""
							image_url=""http://foo.bar/baz.png""
						>
							<modifiers>
								<grant_item ikey=""item_ikey_1""/>
							</modifiers>
						</fbshopitem>
						<fbshopitem
							ikey=""shop_item_ikey2""
							description=""Blah Boo""
							label=""item2""
							price=""4""
							product_url=""ABC""
							image_url=""...""
						>
							<modifiers>
								<grant_item ikey=""item_ikey_2""/>
							</modifiers>
						</fbshopitem>
					</shop_list>
				</facebook>
			</roar>"            ;

            System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml);
            Assert.IsNotNull(nn);

            Assert.AreEqual(2, nn.SelectNodes("./facebook/shop_list/fbshopitem").Count);

            Mockery mockery = new Mockery();

            Roar.DataConversion.IXCRMParser    ixcrm_parser   = mockery.NewMock <Roar.DataConversion.IXCRMParser>();
            List <Roar.DomainObjects.Modifier> modifier_list  = new List <Roar.DomainObjects.Modifier>();
            List <Roar.DomainObjects.Modifier> modifier_list1 = new List <Roar.DomainObjects.Modifier>();

            System.Xml.XmlNode modifier_node0 = nn.SelectSingleNode("./facebook/shop_list/fbshopitem[1]/modifiers");
            Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifier_node0).Will(Return.Value(modifier_list));

            System.Xml.XmlNode modifier_node1 = nn.SelectSingleNode("./facebook/shop_list/fbshopitem[2]/modifiers");
            Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifier_node1).Will(Return.Value(modifier_list1));

            Roar.DataConversion.Responses.Facebook.ShopList shoplist_response_parser = new Roar.DataConversion.Responses.Facebook.ShopList();
            shoplist_response_parser.ixcrm_parser = ixcrm_parser;

            Roar.WebObjects.Facebook.ShopListResponse response = shoplist_response_parser.Build(nn);

            Assert.IsNotNull(response);
            Assert.AreEqual(2, response.shop_list.Count);
            Roar.DomainObjects.FacebookShopEntry e0 = response.shop_list[0];
            Assert.AreEqual("shop_item_ikey1", e0.ikey);
            Assert.AreEqual("Blah Blah", e0.description);
            Assert.AreEqual("label", e0.label);
            Assert.AreEqual("2", e0.price);
            Assert.AreEqual("http://foo.bar", e0.product_url);
            Assert.AreEqual("http://foo.bar/baz.png", e0.image_url);
            Assert.AreSame(modifier_list, e0.modifiers);

            Roar.DomainObjects.FacebookShopEntry e1 = response.shop_list[1];
            Assert.AreEqual("shop_item_ikey2", e1.ikey);
            Assert.AreEqual("Blah Boo", e1.description);
            Assert.AreEqual("item2", e1.label);
            Assert.AreEqual("4", e1.price);
            Assert.AreEqual("ABC", e1.product_url);
            Assert.AreEqual("...", e1.image_url);
            Assert.AreSame(modifier_list1, e1.modifiers);

            mockery.VerifyAllExpectationsHaveBeenMet();
        }
예제 #2
0
        public void TestParseFacebookShopListResponse()
        {
            string xml =
            @"<roar tick=""130695522924"">
                <facebook>\
                    <shop_list>
                        <fbshopitem
                            ikey=""shop_item_ikey1""
                            description=""Blah Blah""
                            label=""label""
                            price=""2""
                            product_url=""http://foo.bar""
                            image_url=""http://foo.bar/baz.png""
                        >
                            <modifiers>
                                <grant_item ikey=""item_ikey_1""/>
                            </modifiers>
                        </fbshopitem>
                        <fbshopitem
                            ikey=""shop_item_ikey2""
                            description=""Blah Boo""
                            label=""item2""
                            price=""4""
                            product_url=""ABC""
                            image_url=""...""
                        >
                            <modifiers>
                                <grant_item ikey=""item_ikey_2""/>
                            </modifiers>
                        </fbshopitem>
                    </shop_list>
                </facebook>
            </roar>";

            System.Xml.XmlElement nn = RoarExtensions.CreateXmlElement(xml);
            Assert.IsNotNull( nn );

            Assert.AreEqual(2, nn.SelectNodes("./facebook/shop_list/fbshopitem").Count );

            Mockery mockery = new Mockery();
            Roar.DataConversion.IXCRMParser ixcrm_parser = mockery.NewMock<Roar.DataConversion.IXCRMParser>();
            List<Roar.DomainObjects.Modifier> modifier_list = new List<Roar.DomainObjects.Modifier>();
            List<Roar.DomainObjects.Modifier> modifier_list1 = new List<Roar.DomainObjects.Modifier>();

            System.Xml.XmlNode modifier_node0 = nn.SelectSingleNode ("./facebook/shop_list/fbshopitem[1]/modifiers");
            Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifier_node0).Will( Return.Value( modifier_list ) );

            System.Xml.XmlNode modifier_node1 = nn.SelectSingleNode ("./facebook/shop_list/fbshopitem[2]/modifiers");
            Expect.Once.On(ixcrm_parser).Method("ParseModifierList").With(modifier_node1).Will( Return.Value( modifier_list1 ) );

            Roar.DataConversion.Responses.Facebook.ShopList shoplist_response_parser = new Roar.DataConversion.Responses.Facebook.ShopList();
            shoplist_response_parser.ixcrm_parser = ixcrm_parser;

            Roar.WebObjects.Facebook.ShopListResponse response = shoplist_response_parser.Build(nn);

            Assert.IsNotNull( response );
            Assert.AreEqual( 2, response.shop_list.Count );
            Roar.DomainObjects.FacebookShopEntry e0 = response.shop_list[0];
            Assert.AreEqual( "shop_item_ikey1", e0.ikey );
            Assert.AreEqual( "Blah Blah", e0.description);
            Assert.AreEqual( "label", e0.label );
            Assert.AreEqual( "2", e0.price );
            Assert.AreEqual( "http://foo.bar", e0.product_url );
            Assert.AreEqual( "http://foo.bar/baz.png", e0.image_url );
            Assert.AreSame( modifier_list, e0.modifiers );

            Roar.DomainObjects.FacebookShopEntry e1 = response.shop_list[1];
            Assert.AreEqual( "shop_item_ikey2", e1.ikey );
            Assert.AreEqual( "Blah Boo", e1.description);
            Assert.AreEqual( "item2", e1.label );
            Assert.AreEqual( "4", e1.price );
            Assert.AreEqual( "ABC", e1.product_url );
            Assert.AreEqual( "...", e1.image_url );
            Assert.AreSame( modifier_list1, e1.modifiers );

            mockery.VerifyAllExpectationsHaveBeenMet();
        }