public void UploadProductPictures_uploads_single_picture_and_returns_true() { string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); var productPictures = new List <ProductPicture>(); var pic = new ProductPicture(); pic.FilePath = appPath + @"\Resources\test_product_picture.jpg"; pic.FileName = "xxxxxx.jpg"; productPictures.Add(pic); bool result = Ftp.UploadProductPictures(productPictures); Assert.AreEqual(true, result); }
public void UpdateProduct_with_values_saves_all_data_correctly() { Product product = new AnonymousProductBuilder(true).build(); //modify the product pictures to be valid for (int i = 0; i < product.ProductPictures.Count; i++) { if (i == 0) { product.ProductPictures[i].FileName = String.Format("{0}.jpg", product.Id.ToString("D6")); } else { product.ProductPictures[i].FileName = String.Format("{0}_{1}.jpg", product.Id.ToString("D6"), i.ToString("D2")); } } //now upload product pictures to FTP server string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); var productPictures = new List <ProductPicture>(); foreach (ProductPicture pic in product.ProductPictures) { productPictures.Add(new ProductPicture { FilePath = appPath + @"\Resources\test_product_picture.jpg", FileName = pic.FileName, ToBeUploaded = true }); } bool bResult = Ftp.UploadProductPictures(productPictures); Assert.AreEqual(true, bResult, "failed to upload product pictures."); //save the product to the webshop string result = WebMethods.ProductMethods.UpdateProduct(product); result = XElement.Parse(result).Value; Assert.IsTrue(result == "ok", string.Format("Product with id {0} could not be created/updated. Unexpected return value was: {1}", product.Id, result)); //retrieve the product from the webshop string errorMsg; Product productFromWS = WebMethods.ProductMethods.GetProductById(product.Id, out errorMsg); Assert.IsNotNull(productFromWS, string.Format("Could not retrieve product with id {0} from the webshop. Unexpected return value was: {1}", product.Id, errorMsg)); //compare all values Assert.AreEqual(product.Id, productFromWS.Id, "The field comparison for field \"id\" failed."); Assert.AreEqual(product.ProductTypeId, productFromWS.ProductTypeId, "The field comparison for field \"product_type_id\" failed."); Assert.AreEqual(product.Name_NL, productFromWS.Name_NL, "The field comparison for field \"name_nl\" failed."); Assert.AreEqual(product.Subtitle_NL, productFromWS.Subtitle_NL, "The field comparison for field \"subtitle_nl\" failed."); Assert.AreEqual(product.AuthorId, productFromWS.AuthorId, "The field comparison for field \"author_id\" failed."); Assert.AreEqual(product.ArrangerId, productFromWS.ArrangerId); Assert.AreEqual(product.ManufacturerId, productFromWS.ManufacturerId, "The field comparison for field \"manufacturer_id\" failed."); Assert.AreEqual(product.InstrumentId, productFromWS.InstrumentId, "The field comparison for field \"instrument_id\" failed."); Assert.AreEqual(product.ReferenceNumber, productFromWS.ReferenceNumber, "The field comparison for field \"reference\" failed."); Assert.AreEqual(product.Isbn, productFromWS.Isbn, "The field comparison for field \"isbn\" failed."); Assert.AreEqual(product.Ismn, productFromWS.Ismn, "The field comparison for field \"ismn\" failed."); Assert.AreEqual(product.Ean, productFromWS.Ean, "The field comparison for field \"ean\" failed."); Assert.AreEqual(product.Upc, productFromWS.Upc, "The field comparison for field \"upc\" failed."); Assert.AreEqual(product.LanguageId, productFromWS.LanguageId, "The field comparison for field \"language_id\" failed."); Assert.AreEqual(product.BindingId, productFromWS.BindingId, "The field comparison for field \"binding_id\" failed."); Assert.AreEqual(product.GradeLevel, productFromWS.GradeLevel, "The field comparison for field \"grade_level\" failed."); Assert.AreEqual(product.SeriesId, productFromWS.SeriesId, "The field comparison for field \"product_series_id\" failed."); Assert.AreEqual(product.Pages, productFromWS.Pages, "The field comparison for field \"nr_of_pages\" failed."); Assert.AreEqual(product.SalesPrice, productFromWS.SalesPrice, "The field comparison for field \"sales_price\" failed."); Assert.AreEqual(product.TaxRateId, productFromWS.TaxRateId, "The field comparison for field \"tax_rate_id\" failed."); Assert.AreEqual(product.Description_NL, productFromWS.Description_NL, "The field comparison for field \"description_nl\" failed."); Assert.AreEqual(product.Weight, productFromWS.Weight, "The field comparison for field \"weight\" failed."); Assert.AreEqual(product.Length, productFromWS.Length, "The field comparison for field \"length\" failed."); Assert.AreEqual(product.Width, productFromWS.Width, "The field comparison for field \"width\" failed."); Assert.AreEqual(product.Height, productFromWS.Height, "The field comparison for field \"height\" failed."); Assert.AreEqual(product.InternalStock, productFromWS.InternalStock, "The field comparison for field \"internal_stock\" failed."); Assert.AreEqual(product.ExternalStock, productFromWS.ExternalStock, "The field comparison for field \"external_stok\" failed."); Assert.AreEqual(product.SupplierId, productFromWS.SupplierId, "The field comparison for field \"supplier_id\" failed."); Assert.AreEqual(product.Promotion, productFromWS.Promotion, "The field comparison for field \"promotion\" failed."); Assert.AreEqual(product.HighlightOnHome, productFromWS.HighlightOnHome, "The field comparison for field \"highlight_on_home\" failed."); Assert.AreEqual(product.BestSeller, productFromWS.BestSeller, "The field comparison for field \"bestseller\" failed."); Assert.AreEqual(product.MinimumOrderQuantity, productFromWS.MinimumOrderQuantity); Assert.AreEqual(product.TeacherDiscount, productFromWS.TeacherDiscount, "The field comparison for field \"teacher_discount\" failed."); Assert.AreEqual(product.ResellerDiscount, productFromWS.ResellerDiscount, "The field comparison for field \"reseller_discount\" failed."); Assert.AreEqual(product.SearchKeywords, productFromWS.SearchKeywords, "The field comparison for field \"keywords_nl\" failed."); Assert.AreEqual(product.StorePickupOnly, productFromWS.StorePickupOnly, "The field comparison for field \"store_pickup_only\" failed."); Assert.AreEqual(product.Test, productFromWS.Test, "The field comparison for field \"test\" failed."); Assert.AreEqual(product.CreatedDttm, productFromWS.CreatedDttm, "The field comparison for field \"created\" failed."); Assert.AreEqual(product.UpdatedDttm, productFromWS.UpdatedDttm, "The field comparison for field \"updated\" failed."); Assert.AreEqual(product.DeletedDttm, productFromWS.DeletedDttm, "The field comparison for field \"deleted\" failed."); //compare lists Assert.AreEqual(product.Songs.Count, productFromWS.Songs.Count, "The field comparison for field \"songs\" failed."); Assert.AreEqual(product.ProductPictures.Count, productFromWS.ProductPictures.Count, "The field comparison for field \"product_pictures\" failed."); Assert.AreEqual(product.ProductCategories.Count, productFromWS.ProductCategories.Count, "The field comparison for field \"product_categories\" failed."); //compare song list contents foreach (Song song in product.Songs) { Song songFromWS = productFromWS.Songs.Find(delegate(Song s) { return(s.Id == song.Id); }); Assert.IsNotNull(songFromWS, string.Format("Song with id {0} could not be found.", song.Id)); Assert.AreEqual(song.Id, songFromWS.Id); Assert.AreEqual(song.Title, songFromWS.Title, "The field comparison for field \"song.title\" failed."); Assert.AreEqual(song.AuthorId, songFromWS.AuthorId, "The field comparison for field \"song.author_id\" failed."); Assert.AreEqual(song.Sequence, songFromWS.Sequence, "The field comparison for field \"song.sort_order\" failed."); } //compare product picture list contents foreach (ProductPicture picture in product.ProductPictures) { ProductPicture pictureFromWS = productFromWS.ProductPictures.Find(delegate(ProductPicture p) { return(p.FileName == picture.FileName); }); Assert.IsNotNull(pictureFromWS, string.Format("Product Picture \"{0}\" could not be found.", picture.FileName)); Assert.AreEqual(picture.FileName, pictureFromWS.FileName, "The field comparison for field \"picture.FileName\" failed."); Assert.AreEqual(picture.Test, pictureFromWS.Test, "The field comparison for field \"picture.Test\" failed."); } //compare product category list contents foreach (ProductCategory category in product.ProductCategories) { Assert.IsTrue(productFromWS.ProductCategories.Exists(delegate(ProductCategory cat) { return(cat.Id == category.Id); }), string.Format("Product Category with id {0} could not be found.", category.Id)); } }