public async void Details_UserIsMember_IsOwnOrder_ReturnsMatchingModel() { List<WebOrder> orders = new List<WebOrder> { new WebOrder { Id = 1, MemberId = UserId, OrderStatus = OrderStatus.Processed }, new WebOrder { Id = 2, MemberId = Id, OrderStatus = OrderStatus.BeingProcessed }, new WebOrder { Id = 3, MemberId = Id, OrderStatus = OrderStatus.PendingProcessing }, new WebOrder { Id = 4, MemberId = UserId, OrderStatus = OrderStatus.UserCancelled } }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<WebOrder>> webOrdersDbSetStub = TestHelpers.GetFakeAsyncDbSet(orders.AsQueryable()); webOrdersDbSetStub.SetupForInclude(); dbStub.Setup(db => db.WebOrders).Returns(webOrdersDbSetStub.Object); Mock<ControllerContext> context = new Mock<ControllerContext>(); context.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); context.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); WebOrdersController controller = new WebOrdersController(dbStub.Object, idGetterStub.Object, stripeService: null, userManager: null) { ControllerContext = context.Object }; var result = await controller.Details(1) as ViewResult; Assert.That(result != null); Assert.That(result.Model, Is.InstanceOf<WebOrder>()); var model = (WebOrder)result.Model; Assert.That(model.Id, Is.EqualTo(1)); Assert.That(model.MemberId, Is.EqualTo(UserId)); Assert.That(model.OrderStatus, Is.EqualTo(OrderStatus.Processed)); }
public void Details_WebOrderNotFound_Throws404Exception() { List<WebOrder> orders = new List<WebOrder> { new WebOrder { Id = 1, MemberId = UserId, OrderStatus = OrderStatus.Processed } }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<WebOrder>> webOrdersDbSetStub = TestHelpers.GetFakeAsyncDbSet(orders.AsQueryable()); webOrdersDbSetStub.SetupForInclude(); dbStub.Setup(db => db.WebOrders).Returns(webOrdersDbSetStub.Object); Mock<ControllerContext> context = new Mock<ControllerContext>(); context.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); context.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(UserId); WebOrdersController controller = new WebOrdersController(dbStub.Object, idGetterStub.Object, stripeService: null, userManager: null) { ControllerContext = context.Object }; Assert.That(async () => await controller.Details(2), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }
public void Details_IdIsNull_Throws404Exception() { WebOrdersController controller = new WebOrdersController(veilDataAccess: null, idGetter: null, stripeService: null, userManager: null); Assert.That(async () => await controller.Details(null), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }