public async Task Update_ShouldUpdateOrderCorrectly() { mapper.Execute(); int testId = 1; var order = new Order() { Status = DeliveryStatus.Unpaid, Id = testId, UserЕmail = "testEmail" }; var ordersMock = new Mock <IOrdersService>(); ordersMock.Setup(v => v.GetById(testId)).Returns(order); ordersMock.Setup(v => v.Save()); var emailsMock = new Mock <IEmailsService>(); OrderRequestUpdateStatusModel request = new OrderRequestUpdateStatusModel() { Id = 1, Status = DeliveryStatus.Done }; var controller = new ManageOrdersController(ordersMock.Object, emailsMock.Object, null); var result = await controller.Update(request); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <OrderResponseModelWIthUserInfo>)); var responseContent = ((OkNegotiatedContentResult <OrderResponseModelWIthUserInfo>)result).Content; Assert.AreEqual(responseContent.Id, testId); ordersMock.VerifyAll(); }
public void Update_ShouldReturnInternalServerErrorAndLogError_WhenOrdersServiceIsNull() { var usersMock = new Mock <IUsersService>(); OrderRequestUpdateStatusModel request = new OrderRequestUpdateStatusModel(); var controller = new ManageOrdersController(null, null, mockedLogger.Object); var result = controller.Update(request); Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult)); mockedLogger.Verify(x => x.LogError(It.IsAny <Exception>(), "", controllerName, "Update")); }
public async Task Update_ShouldSendEmailToTheRegisteredUser() { mapper.Execute(); int testId = 1; var testUser = new User { Email = "testEmail" }; var order = new Order() { Status = DeliveryStatus.Unpaid, Id = testId, User = testUser }; var ordersMock = new Mock <IOrdersService>(); ordersMock.Setup(v => v.GetById(testId)).Returns(order); var emailsMock = new Mock <IEmailsService>(); emailsMock.Setup(x => x.SendEmail( testUser.Email, string.Format(GlobalConstants.OrderUpdated, order.Id), It.Is <string>(y => y.Contains("Нов статус на поръчка") && y.Contains(testId.ToString()) && y.Contains("Завършена")), GlobalConstants.SMTPServer, GlobalConstants.EmailPrimary, GlobalConstants.EmailPrimaryPassword)); OrderRequestUpdateStatusModel request = new OrderRequestUpdateStatusModel() { Id = testId, Status = DeliveryStatus.Done }; var controller = new ManageOrdersController(ordersMock.Object, emailsMock.Object, null); var result = await controller.Update(request); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <OrderResponseModelWIthUserInfo>)); var responseContent = ((OkNegotiatedContentResult <OrderResponseModelWIthUserInfo>)result).Content; Assert.AreEqual(responseContent.Id, testId); emailsMock.VerifyAll(); }