public void Handler_ReturnsNonNullUser_WhenFound_ById() { var userId = FakeData.Id(); var data = new[] { new ProxiedUser(userId) }.AsQueryable(); var query = new UserBy(userId); var dbSet = new Mock<DbSet<User>>(MockBehavior.Strict).SetupDataAsync(data); var entities = new Mock<IReadEntities>(MockBehavior.Strict); var entitySet = new EntitySet<User>(dbSet.Object, entities.Object); entities.Setup(x => x.Query<User>()).Returns(entitySet); var handler = new HandleUserByQuery(entities.Object); User result = handler.Handle(query).Result; result.ShouldNotBeNull(); result.ShouldEqual(data.Single()); entities.Verify(x => x.Query<User>(), Times.Once); }
public void Handler_ReturnsNonNullEmailVerification_WhenFound_ByTicket() { var ticket = FakeData.String(); var emailVerification = new EmailVerification { Ticket = ticket, }; var data = new[] { emailVerification }.AsQueryable(); var query = new EmailVerificationBy(ticket); var dbSet = new Mock<DbSet<EmailVerification>>(MockBehavior.Strict).SetupDataAsync(data); var entities = new Mock<IReadEntities>(MockBehavior.Strict); var entitySet = new EntitySet<EmailVerification>(dbSet.Object, entities.Object); entities.Setup(x => x.Query<EmailVerification>()).Returns(entitySet); var handler = new HandleEmailVerificationByQuery(entities.Object); EmailVerification result = handler.Handle(query).Result; result.ShouldNotBeNull(); result.ShouldEqual(data.Single()); entities.Verify(x => x.Query<EmailVerification>(), Times.Once); }
public void Handler_ReturnsNonNullUser_WhenFound_ByUserLoginInfo() { var loginProvider = FakeData.String(); var providerKey = FakeData.String(); var remoteMembershipId = new RemoteMembershipId { LoginProvider = loginProvider, ProviderKey = providerKey, }; var remoteMembership = new ProxiedRemoteMembership(remoteMembershipId); var user = new User(); user.RemoteMemberships.Add(remoteMembership); var data = new[] { user }.AsQueryable(); var query = new UserBy(new UserLoginInfo(loginProvider, providerKey)); var dbSet = new Mock<DbSet<User>>(MockBehavior.Strict).SetupDataAsync(data); var entities = new Mock<IReadEntities>(MockBehavior.Strict); var entitySet = new EntitySet<User>(dbSet.Object, entities.Object); entities.Setup(x => x.Query<User>()).Returns(entitySet); var handler = new HandleUserByQuery(entities.Object); var result = handler.Handle(query).Result; result.ShouldNotBeNull(); result.ShouldEqual(data.Single()); entities.Verify(x => x.Query<User>(), Times.Once); }
public void Handler_ReturnsNonNullUser_WhenAuthenticatedAndFound_ByPrincipal() { var userId = FakeData.Id(); var claims = new[] { new Claim(ClaimTypes.NameIdentifier, userId.ToString(CultureInfo.InvariantCulture)), }; var identity = new ClaimsIdentity(claims, "authenticationType"); var principal = new GenericPrincipal(identity, null); var data = new[] { new ProxiedUser(userId) }.AsQueryable(); var query = new UserBy(principal); var dbSet = new Mock<DbSet<User>>(MockBehavior.Strict).SetupDataAsync(data); var entities = new Mock<IReadEntities>(MockBehavior.Strict); var entitySet = new EntitySet<User>(dbSet.Object, entities.Object); entities.Setup(x => x.Query<User>()).Returns(entitySet); var handler = new HandleUserByQuery(entities.Object); var result = handler.Handle(query).Result; result.ShouldNotBeNull(); result.ShouldEqual(data.Single()); entities.Verify(x => x.Query<User>(), Times.Once); }
public void Handler_ReturnsEmailAddresses_WhenFound_ByUserId_AndIsVerifiedMatches( bool? queryIsVerified, bool entityIsVerified) { var userId = FakeData.Id(); var otherUserId1 = FakeData.Id(userId); var otherUserId2 = FakeData.Id(userId, otherUserId1); var data = new[] { new EmailAddress { UserId = otherUserId1, IsPrimary = true, }, new EmailAddress { UserId = otherUserId1, }, new EmailAddress { UserId = otherUserId1, }, new EmailAddress { UserId = otherUserId2, IsPrimary = true, }, new EmailAddress { UserId = otherUserId2, }, new ProxiedEmailAddress(664) { UserId = userId, Value = FakeData.Email(), HashedValue = "hashed email value", IsVerified = entityIsVerified, IsPrimary = entityIsVerified, }, new EmailAddress { UserId = userId, IsVerified = !entityIsVerified, }, }.AsQueryable(); var query = new EmailAddressViewsBy(userId) { IsVerified = queryIsVerified, }; var dbSet = new Mock<DbSet<EmailAddress>>(MockBehavior.Strict).SetupDataAsync(data); var entities = new Mock<IReadEntities>(MockBehavior.Strict); var entitySet = new EntitySet<EmailAddress>(dbSet.Object, entities.Object); entities.Setup(x => x.Query<EmailAddress>()).Returns(entitySet); var handler = new HandleEmailAddressViewsByQuery(entities.Object); EmailAddressView[] result = handler.Handle(query).Result.ToArray(); Assert.NotNull(result); result.Length.ShouldEqual(queryIsVerified.HasValue ? 1 : 2); entities.Verify(x => x.Query<EmailAddress>(), Times.Once); if (queryIsVerified.HasValue) { EmailAddress expectedEntity = data.Single(x => x.UserId == userId && x.IsVerified == entityIsVerified); EmailAddressView actualView = result.Single(); actualView.EmailAddressId.ShouldEqual(expectedEntity.Id); actualView.UserId.ShouldEqual(expectedEntity.UserId); actualView.Value.ShouldEqual(expectedEntity.Value); actualView.HashedValue.ShouldEqual(expectedEntity.HashedValue); actualView.IsPrimary.ShouldEqual(expectedEntity.IsPrimary); actualView.IsVerified.ShouldEqual(expectedEntity.IsVerified); } }
public void Handler_ReturnsNonNullEmailAddress_WhenFound_ById_AndIsVerifiedMatches( bool? queryIsVerified, bool entityIsVerified) { var emailAddressId = FakeData.Id(); var emailAddress = new ProxiedEmailAddress(emailAddressId) { IsVerified = entityIsVerified, }; var data = new[] { emailAddress }.AsQueryable(); var query = new EmailAddressBy(emailAddressId) { IsVerified = queryIsVerified, }; var dbSet = new Mock<DbSet<EmailAddress>>(MockBehavior.Strict).SetupDataAsync(data); var entities = new Mock<IReadEntities>(MockBehavior.Strict); var entitySet = new EntitySet<EmailAddress>(dbSet.Object, entities.Object); entities.Setup(x => x.Query<EmailAddress>()).Returns(entitySet); var handler = new HandleEmailAddressByQuery(entities.Object); EmailAddress result = handler.Handle(query).Result; result.ShouldNotBeNull(); result.ShouldEqual(data.Single()); entities.Verify(x => x.Query<EmailAddress>(), Times.Once); }
public void Handler_ReturnsNonNullEmailAddress_WhenFound_ByClaim_AndIsVerified_IsEqual( bool? isQueryVerified, bool isEntityVerified) { var emailAddressValue = FakeData.Email(); var claim = new Claim(ClaimTypes.Email, emailAddressValue); var emailAddress = new EmailAddress { Value = emailAddressValue, IsVerified = isEntityVerified, }; var data = new[] { emailAddress }.AsQueryable(); var query = new EmailAddressBy(claim) { IsVerified = isQueryVerified, }; var dbSet = new Mock<DbSet<EmailAddress>>(MockBehavior.Strict).SetupDataAsync(data); var entities = new Mock<IReadEntities>(MockBehavior.Strict); var entitySet = new EntitySet<EmailAddress>(dbSet.Object, entities.Object); entities.Setup(x => x.Query<EmailAddress>()).Returns(entitySet); var handler = new HandleEmailAddressByQuery(entities.Object); EmailAddress result = handler.Handle(query).Result; result.ShouldNotBeNull(); result.ShouldEqual(data.Single()); entities.Verify(x => x.Query<EmailAddress>(), Times.Once); }