public void ExecutesQuery_ToGetAffiliation_FromPrincipalAndEstablishmentId() { const string principalIdentityName = "*****@*****.**"; var principal = principalIdentityName.AsPrincipal(); var command = new UpdateMyAffiliationCommand { Principal = principal, }; var affiliation = new Affiliation { EstablishmentId = command.EstablishmentId, Person = new Person { User = new User { Name = principal.Identity.Name } }, }; var entities = new Mock<ICommandEntities>(MockBehavior.Strict).Initialize(); entities.Setup(m => m.Get<Affiliation>()).Returns(new[] { affiliation }.AsQueryable); var handler = new UpdateMyAffiliationHandler(entities.Object); NullReferenceException exception = null; try { handler.Handle(command); } catch (NullReferenceException ex) { exception = ex; } entities.Verify(m => m.Get<Affiliation>(), Times.Once()); exception.ShouldNotBeNull(); }
public void IsFalse_WhenChangeCount_IsZero() { var command = new UpdateMyAffiliationCommand { ChangeCount = 0, }; command.ChangedState.ShouldBeFalse(); }
public void IsTrue_WhenChangeCount_IsGreaterThanZero() { var command = new UpdateMyAffiliationCommand { ChangeCount = 1, }; command.ChangedState.ShouldBeTrue(); }
public void IsInvalidWhen_Principal_IsNull() { var command = new UpdateMyAffiliationCommand { Principal = null, }; var entities = new Mock<IQueryEntities>(MockBehavior.Strict).Initialize(); entities.Setup(m => m.Query<Establishment>()).Returns(new Establishment[] { }.AsQueryable); var validator = new UpdateMyAffiliationValidator(entities.Object); var results = validator.Validate(command); results.IsValid.ShouldBeFalse(); results.Errors.Count.ShouldBeInRange(1, int.MaxValue); var error = results.Errors.SingleOrDefault(e => e.PropertyName == "Principal"); error.ShouldNotBeNull(); // ReSharper disable PossibleNullReferenceException error.ErrorMessage.ShouldEqual(ValidatePrincipal.FailedBecausePrincipalWasNull); // ReSharper restore PossibleNullReferenceException }
public void UpdatesAffiliation_WhenFieldsHaveChanged() { const string principalIdentityName = "*****@*****.**"; var principal = principalIdentityName.AsPrincipal(); var command = new UpdateMyAffiliationCommand { Principal = principal, EstablishmentId = 4, }; var affiliation = new Affiliation { EstablishmentId = command.EstablishmentId, Person = new Person { User = new User { Name = principal.Identity.Name } }, }; var entities = new Mock<ICommandEntities>(MockBehavior.Strict).Initialize(); entities.Setup(m => m.Get<Affiliation>()).Returns(new[] { affiliation }.AsQueryable); entities.Setup(m => m.Update(It.Is(AffiliationBasedOn(command)))); var handler = new UpdateMyAffiliationHandler(entities.Object); handler.Handle(command); entities.Verify(m => m.Update(It.Is(AffiliationBasedOn(command))), Times.Once()); }
private static Expression<Func<Affiliation, bool>> AffiliationBasedOn(UpdateMyAffiliationCommand command) { Expression<Func<Affiliation, bool>> affiliationBasedOnCommand = a => a.JobTitles == command.JobTitles && a.IsClaimingStudent == command.IsClaimingStudent && a.IsClaimingEmployee == command.IsClaimingEmployee && a.IsClaimingInternationalOffice == command.IsClaimingInternationalOffice && a.IsClaimingAdministrator == command.IsClaimingAdministrator && a.IsClaimingFaculty == command.IsClaimingFaculty && a.IsClaimingStaff == command.IsClaimingStaff; return affiliationBasedOnCommand; }
public void IncrementsChangeCount_WhenIsClaimingStaff_IsDifferent() { Affiliation outAffiliation = null; const string principalIdentityName = "*****@*****.**"; var principal = principalIdentityName.AsPrincipal(); var command = new UpdateMyAffiliationCommand { Principal = principal, EstablishmentId = 4, IsClaimingStaff = true, }; var affiliation = new Affiliation { IsClaimingStaff = false, IsAcknowledged = true, EstablishmentId = command.EstablishmentId, Person = new Person { User = new User { Name = principal.Identity.Name } }, }; var affiliationBasedOnCommand = AffiliationBasedOn(command); var entities = new Mock<ICommandEntities>(MockBehavior.Strict).Initialize(); entities.Setup(m => m.Get<Affiliation>()).Returns(new[] { affiliation }.AsQueryable); entities.Setup(m => m.Update(It.Is(affiliationBasedOnCommand))) .Callback((Entity entity) => outAffiliation = (Affiliation)entity); var handler = new UpdateMyAffiliationHandler(entities.Object); handler.Handle(command); command.ChangeCount.ShouldEqual(1); outAffiliation.IsClaimingStaff.ShouldEqual(command.IsClaimingStaff); }
public void IsValidWhen_PrincipalIdentityName_MatchesUser() { const string principalIdentityName = "*****@*****.**"; var principal = principalIdentityName.AsPrincipal(); var command = new UpdateMyAffiliationCommand { Principal = principal, }; var user = new User { Name = principal.Identity.Name }; var entities = new Mock<IQueryEntities>(MockBehavior.Strict).Initialize(); entities.Setup(m => m.Query<User>()).Returns(new[] { user }.AsQueryable); entities.Setup(m => m.Query<Establishment>()).Returns(new Establishment[] { }.AsQueryable); var validator = new UpdateMyAffiliationValidator(entities.Object); var results = validator.Validate(command); var error = results.Errors.SingleOrDefault(e => e.PropertyName == "Principal"); error.ShouldBeNull(); }
public void IsInvalidWhen_PrincipalIdentityName_DoesNotMatchUser() { const string principalIdentityName = "*****@*****.**"; var principal = principalIdentityName.AsPrincipal(); var command = new UpdateMyAffiliationCommand { Principal = principal, }; var entities = new Mock<IQueryEntities>(MockBehavior.Strict).Initialize(); entities.Setup(m => m.Query<User>()).Returns(new User[] { }.AsQueryable); entities.Setup(m => m.Query<Establishment>()).Returns(new Establishment[] { }.AsQueryable); var validator = new UpdateMyAffiliationValidator(entities.Object); var results = validator.Validate(command); results.IsValid.ShouldBeFalse(); results.Errors.Count.ShouldBeInRange(1, int.MaxValue); var error = results.Errors.SingleOrDefault(e => e.PropertyName == "Principal"); error.ShouldNotBeNull(); // ReSharper disable PossibleNullReferenceException error.ErrorMessage.ShouldEqual(string.Format( ValidatePrincipal.FailedBecauseIdentityNameMatchedNoUser, command.Principal.Identity.Name)); // ReSharper restore PossibleNullReferenceException }