Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using NUnit.Framework;
- using System;
- using System.Linq;
- namespace Store.Tests
- {
- public class StoreManagerTests
- {
- [SetUp]
- public void Setup()
- {
- }
- [Test]
- public void Constructor_ProductsCollectionIsEmpty()
- {
- StoreManager manager = new StoreManager();
- Assert.IsEmpty(manager.Products);
- Assert.AreEqual(0, manager.Count);
- }
- [Test]
- public void ProductsProp_Should_Add_CorrectNumOfProducts()
- {
- StoreManager manager = new StoreManager();
- Product product1 = new Product("name1", 2, 3.00M);
- Product product2 = new Product("name2", 5, 10.00M);
- manager.AddProduct(product1);
- manager.AddProduct(product2);
- Assert.AreEqual(2, manager.Products.Count);
- }
- [Test]
- public void AddProductMethod_Should_ThrowExc_When_NullProduct()
- {
- StoreManager manager = new StoreManager();
- Assert.Throws<ArgumentNullException>(() => manager.AddProduct(null));
- }
- [Test]
- public void AddProductMethod_Should_ThrowExc_When_ProductQtyNegative()
- {
- StoreManager manager = new StoreManager();
- Product product1 = new Product("name1", -2, 3.00M);
- Assert.Throws<ArgumentException>(() => manager.AddProduct(product1));
- }
- [Test]
- public void AddProductMethod_Should_Add_Correct_Part()
- {
- StoreManager manager = new StoreManager();
- Product product1 = new Product("name1", 2, 3.00M);
- manager.AddProduct(product1);
- Product actualProduct = manager.Products.FirstOrDefault(p => p.Name == "name1");
- Assert.IsNotNull(actualProduct.Name);
- Assert.AreEqual("name1", actualProduct.Name);
- }
- [Test]
- public void BuyProduct_Should_ThrowExc_When_NullProduct()
- {
- StoreManager manager = new StoreManager();
- Assert.Throws<ArgumentNullException>(() => manager.BuyProduct("nameA", 10));
- }
- [Test]
- public void BuyProduct_Should_ThrowExc_When_NotEnoughQty()
- {
- StoreManager manager = new StoreManager();
- Product product1 = new Product("name1", 2, 3.00M);
- manager.AddProduct(product1);
- Assert.Throws<ArgumentException>(() => manager.BuyProduct("name1", 10));
- }
- [Test]
- public void BuyProduct_Should_Work_Properly_Qty()
- {
- StoreManager manager = new StoreManager();
- Product product1 = new Product("name1", 6, 3.00M);
- manager.AddProduct(product1);
- manager.BuyProduct("name1", 1);
- Assert.AreEqual(5, product1.Quantity);
- }
- [Test]
- public void BuyProduct_Should_Work_Properly_Price()
- {
- StoreManager manager = new StoreManager();
- Product product1 = new Product("name1", 6, 3.00M);
- manager.AddProduct(product1);
- decimal actualPrice = manager.BuyProduct("name1", 1);
- Assert.AreEqual(product1.Price, actualPrice);
- }
- [Test]
- public void GetTheMostExpensiveProduct_Should_Work_Properly()
- {
- StoreManager manager = new StoreManager();
- Product product1 = new Product("name1", 2, 3.00M);
- Product product2 = new Product("name2", 5, 10.00M);
- Product product3 = new Product("name3", 3, 8.00M);
- manager.AddProduct(product1);
- manager.AddProduct(product2);
- manager.AddProduct(product3);
- var actualProduct = manager.GetTheMostExpensiveProduct();
- Assert.AreEqual(product2, actualProduct);
- }
- }
- }
Add Comment
Please, Sign In to add comment