public void Constructor_ShouldSetProperties()
        {
            var dut = new UpdateRequirementTypeCommand(1, "AAAAAAAAABA=", 3, "TitleA", "CodeA", RequirementTypeIcon.Battery);

            Assert.AreEqual(1, dut.RequirementTypeId);
            Assert.AreEqual("TitleA", dut.Title);
            Assert.AreEqual("CodeA", dut.Code);
            Assert.AreEqual(3, dut.SortKey);
            Assert.AreEqual(RequirementTypeIcon.Battery, dut.Icon);
            Assert.AreEqual("AAAAAAAAABA=", dut.RowVersion);
        }
        public void Setup_OkState()
        {
            _reqTypeValidatorMock = new Mock <IRequirementTypeValidator>();
            _reqTypeValidatorMock.Setup(r => r.ExistsAsync(_requirementTypeId, default)).Returns(Task.FromResult(true));

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

            _command = new UpdateRequirementTypeCommand(_requirementTypeId, _rowVersion, _sortKey, _title, _code, _icon);
            _dut     = new UpdateRequirementTypeCommandValidator(_reqTypeValidatorMock.Object, _rowVersionValidatorMock.Object);
        }
        public void Validate_ShouldFail_WhenInvalidRowVersion()
        {
            const string invalidRowVersion = "String";

            var command = new UpdateRequirementTypeCommand(_requirementTypeId, invalidRowVersion, _sortKey, _title, _code, _icon);

            _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()
        {
            // Arrange
            var testRequirementTypeId         = 1;
            var requirementTypeRepositoryMock = new Mock <IRequirementTypeRepository>();

            _requirementType = new RequirementType(TestPlant, _oldCode, _oldTitle, _oldIcon, _oldSortKey);
            requirementTypeRepositoryMock.Setup(j => j.GetByIdAsync(testRequirementTypeId))
            .Returns(Task.FromResult(_requirementType));
            _command = new UpdateRequirementTypeCommand(testRequirementTypeId, _rowVersion, _newSortKey, _newTitle, _newCode, _newIcon);

            _dut = new UpdateRequirementTypeCommandHandler(
                requirementTypeRepositoryMock.Object,
                UnitOfWorkMock.Object);
        }