public void ArticleAvailabilityIndicatorServiceTest_New_Indicator_Must_Devide_First_Indicator_And_Decrease_SecondPart_On_5() { var batchId = Guid.NewGuid(); // заполняем коллекцию, якобы возвращаемую из БД var id1 = new Guid("11111111-1111-1111-1111-111111111111"); var id2 = new Guid("22222222-2222-2222-2222-222222222222"); var id3 = new Guid("33333333-3333-3333-3333-333333333333"); var accessor1 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 1), storageId, accountOrganizationId, articleId, batchId, 100M, 10) { Id = id1, EndDate = new DateTime(2011, 1, 5) }; var accessor2 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 5), storageId, accountOrganizationId, articleId, batchId, 100M, 20) { Id = id2, PreviousId = id1, EndDate = new DateTime(2011, 1, 10) }; var accessor3 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 10), storageId, accountOrganizationId, articleId, batchId, 100M, 30) { Id = id3, PreviousId = id2 }; selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor1.Target); selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor2.Target); selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor3.Target); // создаем новый показатель var indicators = new List <ExactArticleAvailabilityIndicator>(); indicators.Add(new ExactArticleAvailabilityIndicator(new DateTime(2011, 1, 3), storageId, accountOrganizationId, articleId, batchId, 100M, -5)); service.Update(storageId, accountOrganizationId, null, indicators); var first = selectedFromDBIndicators.Where(x => x.Id == id1).FirstOrDefault(); var second = selectedFromDBIndicators.Where(x => x.Id == id2).FirstOrDefault(); var third = selectedFromDBIndicators.Where(x => x.Id == id3).FirstOrDefault(); var _new = selectedFromDBIndicators.Where(x => x.PreviousId == id1).FirstOrDefault(); Assert.AreEqual(4, selectedFromDBIndicators.Count); Assert.AreEqual(10, first.Count); Assert.IsNull(first.PreviousId); Assert.AreEqual(new DateTime(2011, 1, 1), first.StartDate); Assert.AreEqual(new DateTime(2011, 1, 3), first.EndDate); Assert.AreEqual(5, _new.Count); Assert.AreEqual(id1, _new.PreviousId); Assert.AreEqual(new DateTime(2011, 1, 3), _new.StartDate); Assert.AreEqual(new DateTime(2011, 1, 5), _new.EndDate); Assert.AreEqual(15, second.Count); Assert.AreEqual(_new.Id, second.PreviousId); Assert.AreEqual(new DateTime(2011, 1, 5), second.StartDate); Assert.AreEqual(new DateTime(2011, 1, 10), second.EndDate); Assert.AreEqual(25, third.Count); Assert.AreEqual(id2, third.PreviousId); Assert.AreEqual(new DateTime(2011, 1, 10), third.StartDate); Assert.IsNull(third.EndDate); }
public void Init() { exactArticleAvailabilityIndicatorRepository = new Mock <IExactArticleAvailabilityIndicatorRepository>(); service = new ExactArticleAvailabilityIndicatorService_Accessor(exactArticleAvailabilityIndicatorRepository.Object); selectedFromDBIndicators = new List <ExactArticleAvailabilityIndicator>(); exactArticleAvailabilityIndicatorRepository.Setup(x => x.Query <ExactArticleAvailabilityIndicator>(true, "") .PropertyIn(z => z.BatchId, (ISubQuery)null) .Where(y => true) .ToList <ExactArticleAvailabilityIndicator>()).Returns(selectedFromDBIndicators); // мочим сохранение показателя exactArticleAvailabilityIndicatorRepository.Setup(x => x.Save(It.IsAny <ExactArticleAvailabilityIndicator>())) .Callback <ExactArticleAvailabilityIndicator>(x => { // ищем показатель по Id var existingIndicator = selectedFromDBIndicators.Where(z => z.Id == x.Id).FirstOrDefault(); // если показателя нет - добавляем его if (existingIndicator == null) { // accessor создаем для установки защищенного свойства Id var accessor = new ExactArticleAvailabilityIndicator_Accessor(new PrivateObject(x)); accessor.Id = Guid.NewGuid(); x = (ExactArticleAvailabilityIndicator)accessor.Target; selectedFromDBIndicators.Add(x); } }); }
public void ArticleAvailabilityIndicatorServiceTest_Second_Indicator_With_Earlier_StartDate_Must_Increase_First_Indicator() { var today = DateTime.Today; var yesterday = today.AddDays(-1); var batchId = Guid.NewGuid(); var id = new Guid("11111111-1111-1111-1111-111111111111"); // заполняем коллекцию, якобы возвращаемую из БД var accessor = new ExactArticleAvailabilityIndicator_Accessor(today, storageId, accountOrganizationId, articleId, batchId, 100M, 5) { Id = id }; selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor.Target); // создаем новый показатель var indicators = new List <ExactArticleAvailabilityIndicator>(); indicators.Add(new ExactArticleAvailabilityIndicator(yesterday, storageId, accountOrganizationId, articleId, batchId, 100M, 10)); service.Update(storageId, accountOrganizationId, null, indicators); var first = selectedFromDBIndicators.Where(x => x.Id == id).FirstOrDefault(); var _new = selectedFromDBIndicators.Where(x => x.Id != id).FirstOrDefault(); Assert.AreEqual(2, selectedFromDBIndicators.Count()); Assert.AreEqual(10, _new.Count); Assert.IsNull(_new.PreviousId); Assert.AreEqual(yesterday, _new.StartDate); Assert.AreEqual(today, _new.EndDate); Assert.AreEqual(15, first.Count); Assert.AreEqual(_new.Id, first.PreviousId); }
public void ArticleAvailabilityIndicatorServiceTest_Second_Indicator_With_Same_StartDate_Must_Be_Added_Correctly() { var today = DateTime.Today; var batchId = new Guid("11111111-1111-1111-1111-111111111111"); var id = new Guid("33333333-3333-3333-3333-333333333333"); // заполняем коллекцию, якобы возвращаемую из БД var accessor = new ExactArticleAvailabilityIndicator_Accessor(today, storageId, accountOrganizationId, articleId, batchId, 100M, 5) { Id = id }; selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor.Target); // создаем новый показатель var indicators = new List <ExactArticleAvailabilityIndicator>(); indicators.Add(new ExactArticleAvailabilityIndicator(today, storageId, accountOrganizationId, articleId, batchId, 100M, 10)); service.Update(storageId, accountOrganizationId, null, indicators); var first = selectedFromDBIndicators.Where(x => x.Id == id).FirstOrDefault(); Assert.AreEqual(1, selectedFromDBIndicators.Count()); Assert.AreEqual(15, first.Count); }
public void ArticleAvailabilityIndicatorServiceTest_Must_Return_One_Single_Row() { var batchId = new Guid("11111111-1111-1111-1111-111111111111"); var accessor = new ExactArticleAvailabilityIndicator_Accessor(DateTime.Today.AddDays(-1), storageId, accountOrganizationId, articleId, batchId, 100M, 5) { Id = Guid.NewGuid() }; selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor.Target); var result = service.GetFrom(storageId, accountOrganizationId, null, DateTime.Now, new List <ExactArticleAvailabilityIndicator>()); Assert.AreEqual(1, result.Count()); }
public void ArticleAvailabilityIndicatorServiceTest_New_Indicator_Must_Be_Added_Before_Current_First_Indicator_Without_Previous_And_Increase_On_3() { var batchId = Guid.NewGuid(); // заполняем коллекцию, якобы возвращаемую из БД var id1 = new Guid("11111111-1111-1111-1111-111111111111"); var id2 = new Guid("22222222-2222-2222-2222-222222222222"); var accessor1 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 10), storageId, accountOrganizationId, articleId, batchId, 100M, 10) { Id = id1, EndDate = new DateTime(2011, 1, 11) }; var accessor2 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 11), storageId, accountOrganizationId, articleId, batchId, 100M, 20) { Id = id2, PreviousId = id1 }; selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor1.Target); selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor2.Target); // создаем новый показатель var indicators = new List <ExactArticleAvailabilityIndicator>(); indicators.Add(new ExactArticleAvailabilityIndicator(new DateTime(2011, 1, 5), storageId, accountOrganizationId, articleId, batchId, 100M, 3)); service.Update(storageId, articleId, null, indicators); var first = selectedFromDBIndicators.Where(x => x.Id == id1).FirstOrDefault(); var second = selectedFromDBIndicators.Where(x => x.Id == id2).FirstOrDefault(); var _new = selectedFromDBIndicators.Where(x => x.Id != id1 && x.Id != id2).FirstOrDefault(); Assert.AreEqual(3, selectedFromDBIndicators.Count); Assert.AreEqual(3, _new.Count); Assert.AreEqual(new DateTime(2011, 1, 5), _new.StartDate); Assert.AreEqual(new DateTime(2011, 1, 10), _new.EndDate); Assert.AreEqual(13, first.Count); Assert.AreEqual(_new.Id, first.PreviousId); Assert.AreEqual(new DateTime(2011, 1, 10), first.StartDate); Assert.AreEqual(new DateTime(2011, 1, 11), first.EndDate); Assert.AreEqual(23, second.Count); }
public void ArticleAvailabilityIndicatorServiceTest_Second_Indicator_Must_Decrease_Following_Indicators_On_3() { var batchId = Guid.NewGuid(); // заполняем коллекцию, якобы возвращаемую из БД var id1 = new Guid("11111111-1111-1111-1111-111111111111"); var id2 = new Guid("22222222-2222-2222-2222-222222222222"); var id3 = new Guid("33333333-3333-3333-3333-333333333333"); var id4 = new Guid("44444444-4444-4444-4444-444444444444"); var accessor1 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 1), storageId, accountOrganizationId, articleId, batchId, 100M, 10) { Id = id1, EndDate = new DateTime(2011, 1, 2) }; var accessor2 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 2), storageId, accountOrganizationId, articleId, batchId, 100M, 15) { Id = id2, EndDate = new DateTime(2011, 1, 3), PreviousId = id1 }; var accessor3 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 3), storageId, accountOrganizationId, articleId, batchId, 100M, 20) { Id = id3, EndDate = new DateTime(2011, 1, 4), PreviousId = id2 }; var accessor4 = new ExactArticleAvailabilityIndicator_Accessor(new DateTime(2011, 1, 4), storageId, accountOrganizationId, articleId, batchId, 100M, 30) { Id = id4, PreviousId = id3 }; selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor2.Target); selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor3.Target); selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor4.Target); // создаем новый показатель var indicators = new List <ExactArticleAvailabilityIndicator>(); indicators.Add(new ExactArticleAvailabilityIndicator(new DateTime(2011, 1, 2), storageId, accountOrganizationId, articleId, batchId, 100M, -3)); service.Update(storageId, accountOrganizationId, null, indicators); Assert.AreEqual(3, selectedFromDBIndicators.Count); Assert.AreEqual(10, accessor1.Count); Assert.AreEqual(12, accessor2.Count); Assert.AreEqual(17, accessor3.Count); Assert.AreEqual(27, accessor4.Count); }
public void ArticleAvailabilityIndicatorServiceTest_Second_Indicator_Must_Be_Added_Correctly() { var today = DateTime.Today; var yasterday = today.AddDays(-1); var batchId = new Guid("11111111-1111-1111-1111-111111111111"); var id = new Guid("33333333-3333-3333-3333-333333333333"); // заполняем коллекцию, якобы возвращаемую из БД var accessor = new ExactArticleAvailabilityIndicator_Accessor(yasterday, storageId, accountOrganizationId, articleId, batchId, 100M, 5) { Id = id }; selectedFromDBIndicators.Add((ExactArticleAvailabilityIndicator)accessor.Target); // создаем новый показатель var indicators = new List <ExactArticleAvailabilityIndicator>(); indicators.Add(new ExactArticleAvailabilityIndicator(today, storageId, accountOrganizationId, articleId, batchId, 100M, 10)); service.Update(storageId, accountOrganizationId, null, indicators); var first = selectedFromDBIndicators.Where(x => x.Id == id).FirstOrDefault(); var second = selectedFromDBIndicators.Where(x => x.Id != id).FirstOrDefault(); Assert.AreEqual(2, selectedFromDBIndicators.Count()); Assert.AreEqual(today, first.EndDate); Assert.AreEqual(accountOrganizationId, second.AccountOrganizationId); Assert.AreEqual(articleId, second.ArticleId); Assert.AreEqual(batchId, second.BatchId); Assert.AreEqual(15, second.Count); Assert.IsNull(second.EndDate); Assert.AreNotEqual(Guid.Empty, second.Id); Assert.AreEqual(first.Id, second.PreviousId); Assert.AreEqual(100M, second.PurchaseCost); Assert.AreEqual(today, second.StartDate); Assert.AreEqual(storageId, second.StorageId); }