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 Get_ShouldMapUserInfoCorrectly() { mapper.Execute(); var orders = new List <Order>() { new Order() { Status = DeliveryStatus.Unpaid, Id = 1, UserId = "1", User = new User() { IsCompany = true, Bulstat = "Bulstat", Name = "CompanyName", Email = "testEmail", PhoneNumber = "0088" } }, new Order() { Status = DeliveryStatus.Unpaid, Id = 2, UserId = "2", User = new User() { IsCompany = false, Bulstat = "Bulstat", Name = "UserName", Email = "testEmail1", PhoneNumber = "0099" } }, new Order() { Status = DeliveryStatus.Unpaid, Id = 3, UserInfo = "AnonymousUserInfo", UserЕmail = "AnonymousUserЕmail" }, }.AsQueryable(); var ordersMock = new Mock <IOrdersService>(); ordersMock.Setup(v => v.GetNewOrders()).Returns(orders); var controller = new ManageOrdersController(ordersMock.Object, null, null); var result = controller.Get(); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <List <OrderResponseModelWIthUserInfo> >)); var responseContent = ((OkNegotiatedContentResult <List <OrderResponseModelWIthUserInfo> >)result).Content; Assert.AreEqual("Bulstat; CompanyName; testEmail; 0088", responseContent[0].UserInfo); Assert.IsNull(responseContent[0].UserInfo); Assert.IsNull(responseContent[0].UserЕmail); Assert.AreEqual(responseContent[1].UserInfo, "UserName; testEmail1; 0099"); Assert.IsNull(responseContent[1].UserInfo); Assert.IsNull(responseContent[1].UserЕmail); Assert.AreEqual(responseContent[2].UserInfo, string.Empty); Assert.AreEqual(responseContent[2].UserInfo, "AnonymousUserInfo"); Assert.AreEqual(responseContent[2].UserЕmail, "AnonymousUserЕmail"); ordersMock.VerifyAll(); }
public void Get_ShouldReturnInternalServerErrorAndLogError_WhenOrdersServiceIsNull() { var controller = new ManageOrdersController(null, null, mockedLogger.Object); var result = controller.Get(); Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult)); mockedLogger.Verify(x => x.LogError(It.IsAny <Exception>(), "", controllerName, "Get")); }
public void Get_ShouldReturnAllOrdersAndOrderedCorrectly_WhenNoParameterSend() { mapper.Execute(); var orders = new List <Order>() { new Order() { Status = DeliveryStatus.Unpaid, Id = 2, CreatedOn = DateTime.MinValue }, new Order() { Status = DeliveryStatus.Unpaid, Id = 1, CreatedOn = DateTime.MinValue }, new Order() { Status = DeliveryStatus.Ordered, Id = 4, CreatedOn = DateTime.MinValue }, new Order() { Status = DeliveryStatus.Ordered, Id = 3, CreatedOn = DateTime.Now } , new Order() { Status = DeliveryStatus.Done, Id = 5, CreatedOn = DateTime.MinValue } }.AsQueryable(); var ordersMock = new Mock <IOrdersService>(); ordersMock.Setup(v => v.GetAll()).Returns(orders); var controller = new ManageOrdersController(ordersMock.Object, null, null); var result = controller.Get(); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <List <OrderResponseModelWIthUserInfo> >)); var responseContent = ((OkNegotiatedContentResult <List <OrderResponseModelWIthUserInfo> >)result).Content; Assert.AreEqual(responseContent[0].Id, 1); Assert.AreEqual(responseContent[1].Id, 2); Assert.AreEqual(responseContent[2].Id, 3); Assert.AreEqual(responseContent[3].Id, 4); Assert.AreEqual(responseContent[4].Id, 5); 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(); }
public void Get_ShouldReturnOrderedProducts_WhenOrderedSend() { mapper.Execute(); var orders = new List <Order>() { new Order() { Status = DeliveryStatus.Ordered, Id = 2 }, new Order() { Status = DeliveryStatus.Ordered, Id = 1 }, new Order() { Status = DeliveryStatus.Ordered, Id = 3 } }.AsQueryable(); var ordersMock = new Mock <IOrdersService>(); ordersMock.Setup(v => v.GetOrderedProducts()).Returns(orders); var controller = new ManageOrdersController(ordersMock.Object, null, null); var result = controller.Get(DeliveryStatus.Ordered.ToString()); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <List <OrderResponseModelWIthUserInfo> >)); var responseContent = ((OkNegotiatedContentResult <List <OrderResponseModelWIthUserInfo> >)result).Content; Assert.AreEqual(responseContent[0].Id, 1); Assert.AreEqual(responseContent[1].Id, 2); Assert.AreEqual(responseContent[2].Id, 3); ordersMock.VerifyAll(); }