Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
        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();
            }
        }
Exemplo n.º 4
0
        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);
        }