public void UpdateAfterModifyingValue_CheckNewVersion(UpdateUserContactParams data) { var now = DateTime.UtcNow; m_dateTimeProviderMock.Setup(x => x.UtcNow).Returns(now); CreateTestUserContacts(); var loadedUserContact = m_userContactRepository.GetActualVersionOfUserContact(m_testUser.Id, ContactTypeEnum.Email); SetUserContact(loadedUserContact, data); m_contactVersioningProxy.UpdateUserContact(loadedUserContact); m_sessionManager.OpenSession().Flush();//Flush has to be here, otherwise NHibernate returns old version with specified ValidTo even though WHERE clause in GetActualVersionOfUserContact is set to ValidTo == null var newVersion = m_userContactRepository.GetActualVersionOfUserContact(m_testUser.Id, ContactTypeEnum.Email); CheckUpdatedUserData(newVersion, data); Assert.Null(newVersion.ActiveTo); Assert.Equal(now, newVersion.ActiveFrom); Assert.Equal(loadedUserContact.DataSource, newVersion.DataSource); Assert.Equal(loadedUserContact.User, newVersion.User); Assert.NotEqual(loadedUserContact.Id, newVersion.Id); }
private void CheckUpdatedUserData(UserContactEntity updatedUserContact, UpdateUserContactParams data) { switch (data.UpdateType) { case UpdateType.Value: Assert.Equal(data.Value, updatedUserContact.Value); break; case UpdateType.LevelOfAssurance: Assert.Equal(data.LevelOfAssurance, updatedUserContact.LevelOfAssurance.Name); break; case UpdateType.ConfirmCode: Assert.Equal(data.ConfirmCode, updatedUserContact.ConfirmCode); break; case UpdateType.ConfirmCodeChangeTime: Assert.Equal(data.ConfirmCodeChangeTime, updatedUserContact.ConfirmCodeChangeTime); break; default: throw new ArgumentOutOfRangeException(); } }
private void SetUserContact(UserContactEntity loadedUserContact, UpdateUserContactParams data) { switch (data.UpdateType) { case UpdateType.Value: loadedUserContact.Value = data.Value; break; case UpdateType.LevelOfAssurance: loadedUserContact.LevelOfAssurance = CreateTestLoa(data.LevelOfAssurance); break; case UpdateType.ConfirmCode: loadedUserContact.ConfirmCode = data.ConfirmCode; break; case UpdateType.ConfirmCodeChangeTime: loadedUserContact.ConfirmCodeChangeTime = data.ConfirmCodeChangeTime; break; default: throw new ArgumentOutOfRangeException(); } }
public void UpdateAfterModifyingValue_CheckOldVersion(UpdateUserContactParams data) { var now = DateTime.UtcNow; m_dateTimeProviderMock.Setup(x => x.UtcNow).Returns(now); CreateTestUserContacts(); var loadedUserContact = m_userContactRepository.GetActualVersionOfUserContact(m_testUser.Id, ContactTypeEnum.Email); SetUserContact(loadedUserContact, data); m_contactVersioningProxy.UpdateUserContact(loadedUserContact); var oldVersion = m_userContactRepository.FindById <UserContactEntity>(loadedUserContact.Id); Assert.NotNull(oldVersion.ActiveTo); Assert.Equal(now, oldVersion.ActiveTo); Assert.Equal(EmailValue, oldVersion.Value); Assert.Equal(ContactTypeEnum.Email, oldVersion.Type); Assert.Equal(MediumLoa, oldVersion.LevelOfAssurance.Name); Assert.Null(oldVersion.ConfirmCode); Assert.Null(oldVersion.ConfirmCodeChangeTime); }