public void Index_AnonymousUser_PrivateWishlist_Throws404Exception() { Member member = new Member { UserAccount = new User { UserName = "******" }, WishListVisibility = WishListVisibility.Private }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Member>> memberDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Member> { member }.AsQueryable()); memberDbSetStub.Setup(db => db.Find(member.UserId)).Returns(member); dbStub.Setup(db => db.Members).Returns(memberDbSetStub.Object); Mock<ControllerContext> context = new Mock<ControllerContext>(); context.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(false); WishlistController controller = new WishlistController(dbStub.Object, idGetter: null) { ControllerContext = context.Object }; Assert.That(async () => await controller.Index(member.UserAccount.UserName), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }
public async void Index_CurrentMemberWishlist_ReturnsMatchingModel() { Member member = new Member { UserId = UserId, UserAccount = new User { UserName = "******" } }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Member>> memberDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Member> { member }.AsQueryable()); memberDbSetStub.Setup(db => db.FindAsync(member.UserId)).ReturnsAsync(member); dbStub.Setup(db => db.Members).Returns(memberDbSetStub.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(member.UserId); WishlistController controller = new WishlistController(dbStub.Object, idGetterStub.Object) { ControllerContext = context.Object }; var result = await controller.Index(null) as ViewResult; Assert.That(result != null); Assert.That(result.Model, Is.InstanceOf<Member>()); var model = (Member)result.Model; Assert.That(model.UserId, Is.EqualTo(UserId)); }
public async void Index_AnonymousUser_PublicWishlist_ReturnsMatchingModel() { Member member = new Member { UserAccount = new User { UserName = "******" }, UserId = UserId, WishListVisibility = WishListVisibility.Public, Wishlist = new List<Product>() }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Member>> memberDbSetStub = TestHelpers.GetFakeAsyncDbSet(new List<Member> { member }.AsQueryable()); memberDbSetStub.Setup(db => db.FindAsync(member.UserId)).ReturnsAsync(member); dbStub.Setup(db => db.Members).Returns(memberDbSetStub.Object); Mock<ControllerContext> context = new Mock<ControllerContext>(); context.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(false); WishlistController controller = new WishlistController(dbStub.Object, idGetter: null) { ControllerContext = context.Object }; var result = await controller.Index(member.UserAccount.UserName) as ViewResult; Assert.That(result != null); Assert.That(result.Model, Is.InstanceOf<Member>()); var model = (Member)result.Model; Assert.That(model.Wishlist, Is.EqualTo(member.Wishlist)); }
public async void Index_WishlistOwnerFound_FriendsOnly_NotFriends_Throws404Exception() { Member wishlistOwner = new Member { UserAccount = new User { UserName = "******" }, UserId = Id, WishListVisibility = WishListVisibility.FriendsOnly, RequestedFriendships = new List<Friendship>(), ReceivedFriendships = new List<Friendship>(), }; Member currentMember = new Member { UserId = UserId }; List<Member> members = new List<Member> { wishlistOwner, currentMember }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Member>> memberDbSetStub = TestHelpers.GetFakeAsyncDbSet(members.AsQueryable()); memberDbSetStub.Setup(db => db.FindAsync(currentMember.UserId)).ReturnsAsync(currentMember); memberDbSetStub.Setup(db => db.FindAsync(wishlistOwner.UserId)).ReturnsAsync(wishlistOwner); memberDbSetStub.SetupForInclude(); dbStub.Setup(db => db.Members).Returns(memberDbSetStub.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(currentMember.UserId); WishlistController controller = new WishlistController(dbStub.Object, idGetterStub.Object) { ControllerContext = context.Object }; var result = await controller.Index(wishlistOwner.UserAccount.UserName) as RedirectToRouteResult; Assert.That(result != null); Assert.That(result.RouteValues["controller"], Is.EqualTo("FriendList")); Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); }
public void Index_WishlistOwnerFound_Private_Throws404Exception() { Member wishlistOwner = new Member { UserAccount = new User { UserName = "******" }, UserId = Id, WishListVisibility = WishListVisibility.Private }; Member currentMember = new Member { UserId = UserId }; List<Member> members = new List<Member> { wishlistOwner, currentMember }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<DbSet<Member>> memberDbSetStub = TestHelpers.GetFakeAsyncDbSet(members.AsQueryable()); memberDbSetStub.Setup(db => db.FindAsync(currentMember.UserId)).ReturnsAsync(currentMember); memberDbSetStub.Setup(db => db.FindAsync(wishlistOwner.UserId)).ReturnsAsync(wishlistOwner); memberDbSetStub.SetupForInclude(); dbStub.Setup(db => db.Members).Returns(memberDbSetStub.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(currentMember.UserId); WishlistController controller = new WishlistController(dbStub.Object, idGetterStub.Object) { ControllerContext = context.Object }; Assert.That(async () => await controller.Index(wishlistOwner.UserAccount.UserName), Throws.InstanceOf<HttpException>().And.Matches<HttpException>(ex => ex.GetHttpCode() == 404)); }