/// <summary>
        /// delete a cross selling and check if the deletion was successful
        /// </summary>
        public void testDelete()
        {
            Console.WriteLine("CrossSellingTest: testDelete");

            TDeleteCrossSelling_Input crossSelling = new TDeleteCrossSelling_Input();

            crossSelling.Product       = product;
            crossSelling.TargetProduct = target_product;
            crossSelling.Type          = "CrossSelling";

            TDeleteCrossSelling_Input productComparison = new TDeleteCrossSelling_Input();

            productComparison.Product       = product;
            productComparison.TargetProduct = target_product;
            productComparison.Type          = "ProductComparison";

            TDeleteCrossSelling_Input accessory = new TDeleteCrossSelling_Input();

            accessory.Product       = product;
            accessory.TargetProduct = target_product;
            accessory.Type          = "Accessory";

            TDeleteCrossSelling_Input[] CrossSellings = new TDeleteCrossSelling_Input[] {
                crossSelling,
                productComparison,
                accessory,
            };

            TDeleteCrossSelling_Return[] CrossSellings_out = crossSellingService.delete(CrossSellings);

            // test if deletion was successful
            Assert.AreEqual(3, CrossSellings_out.GetLength(0), "delete result count");

            TDeleteCrossSelling_Return CrossSelling_out = CrossSellings_out[0];

            Assert.IsNull(CrossSelling_out.Error, "delete: no error");
            Assert.AreEqual(product, CrossSelling_out.Product, "Product path");
            Assert.IsTrue(CrossSelling_out.deleted, "deleted?");
        }
        public void Init()
        {
            Console.WriteLine("CrossSellingTest: Init");

            crossSellingService                 = new CrossSellingService();
            crossSellingService.Credentials     = new System.Net.NetworkCredential(WEBSERVICE_LOGIN, WEBSERVICE_PASSWORD);
            crossSellingService.PreAuthenticate = true;
            crossSellingService.Url             = WEBSERVICE_URL;

            // remove all assigned cross selling products
            TDeleteCrossSelling_Input CrossSelling_in = new TDeleteCrossSelling_Input();

            CrossSelling_in.Product       = product;
            CrossSelling_in.TargetProduct = "*";
            CrossSelling_in.Type          = "CrossSelling";
            TDeleteCrossSelling_Input[]  CrossSellings     = new TDeleteCrossSelling_Input[] { CrossSelling_in };
            TDeleteCrossSelling_Return[] CrossSellings_out = crossSellingService.delete(CrossSellings);

            Console.WriteLine("delete all CrossSelling: " + CrossSellings_out.GetLength(0));
            foreach (TDeleteCrossSelling_Return result in CrossSellings_out)
            {
                if (result.Error != null)
                {
                    Console.Error.WriteLine("delete CrossSelling failed:" + result.Error.Message);
                }
                else
                {
                    Console.WriteLine("deleted CrossSelling: " + result.TargetProduct + " : " + result.deleted);
                }
            }

            CrossSelling_in               = new TDeleteCrossSelling_Input();
            CrossSelling_in.Product       = product;
            CrossSelling_in.TargetProduct = "*";
            CrossSelling_in.Type          = "Accessory";
            CrossSellings     = new TDeleteCrossSelling_Input[] { CrossSelling_in };
            CrossSellings_out = crossSellingService.delete(CrossSellings);

            Console.WriteLine("delete all Accessory: " + CrossSellings_out.GetLength(0));
            foreach (TDeleteCrossSelling_Return result in CrossSellings_out)
            {
                if (result.Error != null)
                {
                    Console.Error.WriteLine("delete failed:" + result.Error.Message);
                }
                else
                {
                    Console.WriteLine("deleted Accessory: " + result.TargetProduct + " : " + result.deleted);
                }
            }

            CrossSelling_in               = new TDeleteCrossSelling_Input();
            CrossSelling_in.Product       = product;
            CrossSelling_in.TargetProduct = "*";
            CrossSelling_in.Type          = "ProductComparison";
            CrossSellings     = new TDeleteCrossSelling_Input[] { CrossSelling_in };
            CrossSellings_out = crossSellingService.delete(CrossSellings);

            Console.WriteLine("delete all ProductComparison: " + CrossSellings_out.GetLength(0));
            foreach (TDeleteCrossSelling_Return result in CrossSellings_out)
            {
                if (result.Error != null)
                {
                    Console.Error.WriteLine("delete ProductComparison failed:" + result.Error.Message);
                }
                else
                {
                    Console.WriteLine("deleted ProductComparison: " + result.TargetProduct + " : " + result.deleted);
                }
            }
        }