public void OnUpdateСтрокаЗаказа_НоваяСНаличиемНаСкладе_ТоварыРезервируются() { // Arrange var товар = new Товар(); var строка = new СтрокаЗаказа { Количество = 4, Товар = товар, Заказ = new Заказ { егион = new егион { Код = "59" } } }; бс.DiscountService = Mock.Of <IDiscountService>(); var whMock = new Mock <IWarehouseService>(); whMock.Setup(x => x.CanReserveProduct(товар, 4)).Returns(true); бс.WarehouseService = whMock.Object; // Act бс.OnUpdateСтрокаЗаказа(строка); // Assert whMock.Verify(x => x.ReserveProduct(товар, 4)); }
public void OnUpdateСтрокаЗаказа_НоваяСНедостаткомНаСкладе_ГенерируетсяИсключение() { // Arrange var товар = new Товар(); var строка = new СтрокаЗаказа { Количество = 10, Товар = товар, Заказ = new Заказ { егион = new егион { Код = "59" } } }; бс.DiscountService = Mock.Of <IDiscountService>(); бс.WarehouseService = Mock.Of <IWarehouseService>(ws => ws.CanReserveProduct(товар, 10) == false); // Act var exception = Assert.Throws <Exception>(() => бс.OnUpdateСтрокаЗаказа(строка)); // Assert Assert.Equal("Недостаточно товара на складах.", exception.Message); }
public void OnUpdateСтрокаЗаказа_Новая_ВычисляетСумму() { // Arrange var строка = new СтрокаЗаказа { Количество = 2, Товар = new Товар { Цена = 100 }, Заказ = new Заказ { егион = new егион { Код = "59" } } }; var discountServiceMock = new Mock <IDiscountService>(); discountServiceMock .Setup(x => x.GetDiscount(It.IsAny <СтрокаЗаказа>())) .Returns(1m); бс.DiscountService = discountServiceMock.Object; // Act бс.OnUpdateСтрокаЗаказа(строка); // Assert Assert.Equal(300, строка.Сумма); }
public void OnUpdateСтрокаЗаказа_Новая_ВычисляетЦенуСНалогом() { // Arrange var строка = new СтрокаЗаказа { Количество = 1, Товар = new Товар { Цена = 100 }, Заказ = new Заказ { егион = new егион { Код = "59" } } }; бс.DiscountService = Mock.Of <IDiscountService>(); // Act бс.OnUpdateСтрокаЗаказа(строка); // Assert Assert.Equal(150, строка.ЦенаСНалогами); }
public void GetDiscount_ВипКлиент_Скидка20Процентов(СтрокаЗаказа строкаЗаказа) { // Arrange var discountService = new PersonalDiscountService(); // Act var discount = discountService.GetDiscount(строкаЗаказа); // Assert Assert.Equal(0.75m, discount); }
public void GetDiscount_ОбычныйКлиент_БезСкидки(СтрокаЗаказа строкаЗаказа) { // Arrange var discountService = new PersonalDiscountService(); // Act var discount = discountService.GetDiscount(строкаЗаказа); // Assert Assert.Equal(1, discount); }
public void GetDiscount_ОптовыйЗаказ_Скидка20Процентов_Theory(int count) { // Arrange var discountService = new SimpleDiscountService(); var строкаЗаказа = new СтрокаЗаказа { Количество = count }; // Act var discount = discountService.GetDiscount(строкаЗаказа); // Assert Assert.Equal(0.8m, discount); }
public void GetDiscount_РозничныйЗаказ_БезСкидки_Theory(int count) { // Arrange var discountService = new SimpleDiscountService(); var строкаЗаказа = new СтрокаЗаказа { Количество = count }; // Act var discount = discountService.GetDiscount(строкаЗаказа); // Assert Assert.Equal(1, discount); }
public void OnUpdateСтрокаЗаказа_НоваяСНаличиемНаСкладе_УспешноВыполняется() { // Arrange var товар = new Товар(); var строка = new СтрокаЗаказа { Количество = 4, Товар = товар, Заказ = new Заказ { егион = new егион { Код = "59" } } }; бс.DiscountService = Mock.Of <IDiscountService>(); бс.WarehouseService = Mock.Of <IWarehouseService>(ws => ws.CanReserveProduct(товар, 4) == true); // Act бс.OnUpdateСтрокаЗаказа(строка); }