Esempio n. 1
0
        public void UpdateAfterModifyingValue_CheckNewVersion(UpdateUserDataParams data)
        {
            var now = DateTime.UtcNow;

            m_dateTimeProviderMock.Setup(x => x.UtcNow).Returns(now);

            CreateTestUserData();

            var currentUserData =
                m_userDataRepository.FindCurrentVersionOfUserDataWithLoaGreaterThan(FirstName, FirstNameDataType, LowLoa, now);
            var sourceUserCurrentUserData = currentUserData.Single(x => x.DataSource.Equals(m_userDataSource));

            SetUserData(sourceUserCurrentUserData, data);

            m_dataVersioningProxy.UpdateUserData(new[] { sourceUserCurrentUserData });

            m_sessionManager.OpenSession()
            .Flush();     //Flush has to be here, otherwise NHibernate returns old version with specified ValidTo even though WHERE clause in FindActualVersionOfUserDataWithLoaGreaterThan is set to ValidTo == null
            var newUserDataVersion = m_userDataRepository.FindCurrentVersionOfUserDataWithLoaGreaterThan(sourceUserCurrentUserData.Value,
                                                                                                         sourceUserCurrentUserData.UserDataType.DataTypeValue, LowLoa, now);
            var sourceUserNewUserData = newUserDataVersion.Single(x => x.DataSource.Equals(m_userDataSource));

            CheckUpdatedUserData(sourceUserNewUserData, data);
            Assert.Null(sourceUserNewUserData.ActiveTo);
            Assert.Equal(now, sourceUserNewUserData.ActiveFrom);

            Assert.Equal(sourceUserCurrentUserData.DataSource, sourceUserNewUserData.DataSource);
            Assert.Equal(sourceUserCurrentUserData.ParentUserData, sourceUserNewUserData.ParentUserData);
            Assert.Equal(sourceUserCurrentUserData.User, sourceUserNewUserData.User);
            Assert.Equal(sourceUserCurrentUserData.VerifiedBy, sourceUserNewUserData.VerifiedBy);
            Assert.NotEqual(sourceUserCurrentUserData.Id, sourceUserNewUserData.Id);
        }
Esempio n. 2
0
        private void CheckUpdatedUserData(UserDataEntity updatedUserData, UpdateUserDataParams data)
        {
            switch (data.UpdateType)
            {
            case UpdateType.Value:
                Assert.Equal(data.Value, updatedUserData.Value);
                break;

            case UpdateType.Type:
                Assert.Equal(data.Type, updatedUserData.UserDataType.DataTypeValue);
                break;

            case UpdateType.LevelOfAssurance:
                Assert.Equal(data.LevelOfAssurance, updatedUserData.LevelOfAssurance.Name);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 3
0
        private void SetUserData(UserDataEntity loadedUserData, UpdateUserDataParams data)
        {
            switch (data.UpdateType)
            {
            case UpdateType.Value:
                loadedUserData.Value = data.Value;
                break;

            case UpdateType.Type:
                loadedUserData.UserDataType = CreateTestDataType(data.Type);
                break;

            case UpdateType.LevelOfAssurance:
                loadedUserData.LevelOfAssurance = CreateTestLoa(data.LevelOfAssurance);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 4
0
        public void UpdateAfterModifyingValue_CheckOldVersion(UpdateUserDataParams data)
        {
            var now = DateTime.UtcNow;

            m_dateTimeProviderMock.Setup(x => x.UtcNow).Returns(now);

            CreateTestUserData();

            var loadedUserData            = m_dataVersioningProxy.FindUserDataWithLoaGreaterThan(FirstName, FirstNameDataType, LowLoa);
            var sourceUserCurrentUserData = loadedUserData.Single(x => x.DataSource.Equals(m_userDataSource));

            SetUserData(sourceUserCurrentUserData, data);

            m_dataVersioningProxy.UpdateUserData(new[] { sourceUserCurrentUserData });

            var oldVersion = m_userDataRepository.FindById <UserDataEntity>(sourceUserCurrentUserData.Id);

            Assert.NotNull(oldVersion.ActiveTo);
            Assert.Equal(now, oldVersion.ActiveTo);
            Assert.Equal(FirstName, oldVersion.Value);
            Assert.Equal(FirstNameDataType, oldVersion.UserDataType.DataTypeValue);
            Assert.Equal(MediumLoa, oldVersion.LevelOfAssurance.Name);
        }