zaryana

UnitTestsExam20Aug2020

Dec 9th, 2020
563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.86 KB | None | 0 0
  1. using NUnit.Framework;
  2. using System;
  3. using System.Linq;
  4.  
  5. namespace Store.Tests
  6. {
  7.     public class StoreManagerTests
  8.     {
  9.         [SetUp]
  10.         public void Setup()
  11.         {
  12.         }
  13.  
  14.         [Test]
  15.         public void Constructor_ProductsCollectionIsEmpty()
  16.         {
  17.             StoreManager manager = new StoreManager();
  18.  
  19.             Assert.IsEmpty(manager.Products);
  20.             Assert.AreEqual(0, manager.Count);
  21.         }
  22.  
  23.         [Test]
  24.         public void ProductsProp_Should_Add_CorrectNumOfProducts()
  25.         {
  26.             StoreManager manager = new StoreManager();
  27.             Product product1 = new Product("name1", 2, 3.00M);
  28.             Product product2 = new Product("name2", 5, 10.00M);
  29.  
  30.             manager.AddProduct(product1);
  31.             manager.AddProduct(product2);
  32.  
  33.             Assert.AreEqual(2, manager.Products.Count);
  34.         }
  35.  
  36.         [Test]
  37.         public void AddProductMethod_Should_ThrowExc_When_NullProduct()
  38.         {
  39.             StoreManager manager = new StoreManager();
  40.  
  41.             Assert.Throws<ArgumentNullException>(() => manager.AddProduct(null));
  42.         }
  43.  
  44.         [Test]
  45.         public void AddProductMethod_Should_ThrowExc_When_ProductQtyNegative()
  46.         {
  47.             StoreManager manager = new StoreManager();
  48.             Product product1 = new Product("name1", -2, 3.00M);
  49.  
  50.             Assert.Throws<ArgumentException>(() => manager.AddProduct(product1));
  51.         }
  52.  
  53.         [Test]
  54.         public void AddProductMethod_Should_Add_Correct_Part()
  55.         {
  56.             StoreManager manager = new StoreManager();
  57.             Product product1 = new Product("name1", 2, 3.00M);
  58.  
  59.             manager.AddProduct(product1);
  60.  
  61.             Product actualProduct = manager.Products.FirstOrDefault(p => p.Name == "name1");
  62.  
  63.             Assert.IsNotNull(actualProduct.Name);
  64.             Assert.AreEqual("name1", actualProduct.Name);
  65.         }
  66.  
  67.         [Test]
  68.         public void BuyProduct_Should_ThrowExc_When_NullProduct()
  69.         {
  70.             StoreManager manager = new StoreManager();
  71.  
  72.             Assert.Throws<ArgumentNullException>(() => manager.BuyProduct("nameA", 10));
  73.         }
  74.  
  75.         [Test]
  76.         public void BuyProduct_Should_ThrowExc_When_NotEnoughQty()
  77.         {
  78.             StoreManager manager = new StoreManager();
  79.             Product product1 = new Product("name1", 2, 3.00M);
  80.  
  81.             manager.AddProduct(product1);
  82.  
  83.             Assert.Throws<ArgumentException>(() => manager.BuyProduct("name1", 10));
  84.         }
  85.  
  86.         [Test]
  87.         public void BuyProduct_Should_Work_Properly_Qty()
  88.         {
  89.             StoreManager manager = new StoreManager();
  90.             Product product1 = new Product("name1", 6, 3.00M);
  91.  
  92.             manager.AddProduct(product1);
  93.             manager.BuyProduct("name1", 1);
  94.  
  95.             Assert.AreEqual(5, product1.Quantity);
  96.         }
  97.  
  98.         [Test]
  99.         public void BuyProduct_Should_Work_Properly_Price()
  100.         {
  101.             StoreManager manager = new StoreManager();
  102.             Product product1 = new Product("name1", 6, 3.00M);
  103.  
  104.             manager.AddProduct(product1);
  105.             decimal actualPrice = manager.BuyProduct("name1", 1);
  106.  
  107.             Assert.AreEqual(product1.Price, actualPrice);
  108.         }
  109.  
  110.         [Test]
  111.         public void GetTheMostExpensiveProduct_Should_Work_Properly()
  112.         {
  113.             StoreManager manager = new StoreManager();
  114.             Product product1 = new Product("name1", 2, 3.00M);
  115.             Product product2 = new Product("name2", 5, 10.00M);
  116.             Product product3 = new Product("name3", 3, 8.00M);
  117.  
  118.             manager.AddProduct(product1);
  119.             manager.AddProduct(product2);
  120.             manager.AddProduct(product3);
  121.  
  122.             var actualProduct = manager.GetTheMostExpensiveProduct();
  123.  
  124.             Assert.AreEqual(product2, actualProduct);
  125.         }
  126.     }
  127. }
Add Comment
Please, Sign In to add comment