/// <summary> /// Generates random combinations of messages /// </summary> public void CreateMessages() { Random r = new Random(); for (int j = 0; j < 4; j++) { for (int i = 0; i < 10; i++) { Sale s = new Sale($"product { i }", decimal.Round(Convert.ToDecimal(r.NextDouble() * (20 - 0)), 2)); Message m = new Message(s, MessageType.Single, null); DataManager.AddPendingMessage(m); } for (int i = 0; i < 10; i++) { Sale s = new Sale($"product { i }", decimal.Round(Convert.ToDecimal(r.NextDouble() * 1), 2), r.Next(10)); Message m = new Message(s, MessageType.Multi, null); DataManager.AddPendingMessage(m); } AdjustmentType[] types = new AdjustmentType[] { AdjustmentType.Add, AdjustmentType.Multiply, AdjustmentType.Subtract }; for (int i = 0; i < 10; i++) { Sale s = new Sale($"product { i }", decimal.Round(Convert.ToDecimal(r.NextDouble() * 1), 2)); SaleAdjustment sa = new SaleAdjustment($"product { i }", decimal.Round(Convert.ToDecimal(r.NextDouble() * 10), 2), types[r.Next(3)]); Message m = new Message(s, MessageType.Adjustment, sa); DataManager.AddPendingMessage(m); } } }
public void Adj_When_AdjustmentValueIsWrong_PrintsWarning_And_ReturnsFalse() { // Arrange OutputLoggerHelper.SkipOutputFile = true; MessageValidatorAdjustment v = new MessageValidatorAdjustment(); Sale s = new Sale("product", 2.5m); SaleAdjustment sa = new SaleAdjustment("product", Decimal.MinValue, AdjustmentType.Add); Message m = new Message(s, MessageType.Adjustment, sa); // Act bool isMeesageValid = v.MessageIsValid(m); bool isSaleSaved = new SaleExecutorAdjustment(s, sa).ExecuteSale(); // Assert Assert.AreEqual(false, isMeesageValid); }
public void Adj_When_TypeAndSaleOk_SaveSale() { // Arrange OutputLoggerHelper.SkipOutputFile = true; MessageValidatorAdjustment v = new MessageValidatorAdjustment(); Sale s = new Sale("product", 2.5m, 6); SaleAdjustment sa = new SaleAdjustment("product", 4, AdjustmentType.Add); Message m = new Message(s, MessageType.Adjustment, sa); // Act bool isMeesageValid = v.MessageIsValid(m); bool isSaleSaved = new SaleExecutorAdjustment(s, sa).ExecuteSale(); // Assert Assert.AreEqual(true, isMeesageValid); Assert.AreEqual(true, isSaleSaved); Console.WriteLine($"Sales entered: { DataManager.GetReadOnlySaleList().Count }, Sale adjustments performed { DataManager.GetReadOnlySaleAdjustments().Count }"); }
public SaleExecutorSimple(Sale sale, SaleAdjustment saleAdjustment = null) : base(sale, saleAdjustment) { }
public SaleExecutorAdjustment(Sale sale, SaleAdjustment saleAdjustment) : base(sale, saleAdjustment) { }
public SaleExecutorBase(Sale sale, SaleAdjustment saleAdjustment = null) { _sale = sale; _saleAdjustment = saleAdjustment; }
public SaleExecutorMulti(Sale sale, SaleAdjustment saleAdjustment = null) : base(sale, saleAdjustment) { }