public void Handler_ReturnsNullEmailAddress_WhenNotFound_ById() { var emailAddressId = FakeData.Id(); var data = new[] { new ProxiedEmailAddress(FakeData.Id(canNotBe: emailAddressId)) }.AsQueryable(); var query = new EmailAddressBy(emailAddressId); 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.ShouldBeNull(); entities.Verify(x => x.Query<EmailAddress>(), Times.Once); }
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); }
public void Handler_ReturnsNullEmailAddress_WhenClaimType_IsNotEmail_ByClaim() { var emailAddressValue = FakeData.Email(); var claim = new Claim(ClaimTypes.NameIdentifier, emailAddressValue); var emailAddress = new EmailAddress { Value = emailAddressValue, }; var data = new[] { emailAddress }.AsQueryable(); var query = new EmailAddressBy(claim); 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.ShouldBeNull(); entities.Verify(x => x.Query<EmailAddress>(), Times.Once); }
public void Handler_ReturnsNullEmailAddress_WhenFound_ByValue_ButIsVerifiedDoesNotMatch(bool isVerified) { var emailAddressValue = FakeData.Email(); var emailAddress = new EmailAddress { Value = emailAddressValue, IsVerified = !isVerified, }; var data = new[] { emailAddress }.AsQueryable(); var query = new EmailAddressBy(emailAddressValue) { IsVerified = isVerified, }; 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.ShouldBeNull(); entities.Verify(x => x.Query<EmailAddress>(), Times.Once); }