public void Setup()
        {
            _person  = new Person(_currentUserOid, "FirstName", "LastName", "UserName", "*****@*****.**");
            _project = new ProCoSysProject()
            {
                Id = 0, Description = "", IsClosed = false, Name = "ProjectName"
            };

            _currentUserProviderMock = new Mock <ICurrentUserProvider>();
            _currentUserProviderMock.Setup(x => x.GetCurrentUserOid())
            .Returns(_currentUserOid);

            _personRepositoryMock = new Mock <IPersonRepository>();
            _personRepositoryMock.Setup(x => x.GetWithSavedFiltersByOidAsync(_currentUserOid))
            .Returns(Task.FromResult(_person));

            _savedFilter = new SavedFilter(TestPlant, _project.Name, _oldTitle, _oldCriteria);
            _savedFilter.SetProtectedIdForTesting(2);
            _person.AddSavedFilter(_savedFilter);

            _command = new UpdateSavedFilterCommand(_savedFilter.Id, _newTitle, _newCriteria, _newDefaultFilter, _rowVersion);

            _dut = new UpdateSavedFilterCommandHandler(
                UnitOfWorkMock.Object,
                _currentUserProviderMock.Object,
                _personRepositoryMock.Object
                );
        }
        public void Setup()
        {
            _person  = new Person(_currentUserOid, "Current", "User");
            _project = new Project(TestPlant, "T", "D");

            _currentUserProviderMock = new Mock <ICurrentUserProvider>();
            _currentUserProviderMock.Setup(x => x.GetCurrentUserOid())
            .Returns(_currentUserOid);

            _personRepositoryMock = new Mock <IPersonRepository>();
            _personRepositoryMock.Setup(x => x.GetWithSavedFiltersByOidAsync(_currentUserOid))
            .Returns(Task.FromResult(_person));

            _savedFilter = new SavedFilter(TestPlant, _project, _oldTitle, _oldCriteria);
            _savedFilter.SetProtectedIdForTesting(2);
            _person.AddSavedFilter(_savedFilter);

            _command = new UpdateSavedFilterCommand(_savedFilter.Id, _newTitle, _newCriteria, _newDefaultFilter, _rowVersion);

            _dut = new UpdateSavedFilterCommandHandler(
                UnitOfWorkMock.Object,
                _currentUserProviderMock.Object,
                _personRepositoryMock.Object
                );
        }
        public async Task HandlingUpdateSavedFilterCommand_ShouldNotUpdateDefaultFilter_IfDefaultFilterIsNull()
        {
            // Arrange
            _command = new UpdateSavedFilterCommand(_savedFilter.Id, _newTitle, _newCriteria, null, _rowVersion);

            // Act
            await _dut.Handle(_command, default);

            // Arrange
            Assert.AreEqual(_newTitle, _savedFilter.Title);
            Assert.AreEqual(_newCriteria, _savedFilter.Criteria);
            Assert.AreEqual(false, _savedFilter.DefaultFilter);
        }
        public void Validate_ShouldFail_WhenInvalidRowVersion()
        {
            const string InvalidRowVersion = "String";

            _command = new UpdateSavedFilterCommand(_savedFilterId, _title, _criteria,
                                                    false, InvalidRowVersion);
            _rowVersionValidatorMock.Setup(r => r.IsValid(InvalidRowVersion)).Returns(false);

            var result = _dut.Validate(_command);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(1, result.Errors.Count);
            Assert.IsTrue(result.Errors[0].ErrorMessage.StartsWith("Not a valid row version!"));
        }
        public void Setup_OkState()
        {
            const string RowVersion = "AAAAAAAAJ00=";

            _rowVersionValidatorMock = new Mock <IRowVersionValidator>();
            _rowVersionValidatorMock.Setup(r => r.IsValid(RowVersion)).Returns(true);

            _savedFilterValidatorMock = new Mock <ISavedFilterValidator>();
            _savedFilterValidatorMock.Setup(r => r.ExistsAsync(_savedFilterId, default)).Returns(Task.FromResult(true));

            _command = new UpdateSavedFilterCommand(_savedFilterId, _title, _criteria, false, RowVersion);

            _dut = new UpdateSavedFilterCommandValidator(
                _savedFilterValidatorMock.Object,
                _rowVersionValidatorMock.Object);
        }