public void Validate_ShouldFail_WhenInvalidRowVersionForStepB()
        {
            var command = new SwapStepsCommand(_journeyId, _stepAId, _stepARowVersion, _stepBId, _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 Constructor_ShouldSetProperties()
        {
            var stepA = new StepIdAndRowVersion(2, "AAAAAAAAABA=");
            var stepB = new StepIdAndRowVersion(3, "AAAAAAAACBA=");
            var dut   = new SwapStepsCommand(1, stepA.Id, stepA.RowVersion, stepB.Id, stepB.RowVersion);

            Assert.AreEqual(1, dut.JourneyId);
            Assert.AreEqual(2, dut.StepAId);
            Assert.AreEqual("AAAAAAAAABA=", dut.StepARowVersion);
            Assert.AreEqual(3, dut.StepBId);
            Assert.AreEqual("AAAAAAAACBA=", dut.StepBRowVersion);
        }
        public void Setup_OkState()
        {
            _journeyValidatorMock = new Mock <IJourneyValidator>();
            _journeyValidatorMock.Setup(r => r.AreAdjacentStepsInAJourneyAsync(_journeyId, _stepAId, _stepBId, default))
            .Returns(Task.FromResult(true));
            _journeyValidatorMock.Setup(r => r.ExistsStepAsync(_journeyId, _stepAId, default)).Returns(Task.FromResult(true));
            _journeyValidatorMock.Setup(r => r.ExistsStepAsync(_journeyId, _stepBId, default)).Returns(Task.FromResult(true));

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

            _stepValidatorMock = new Mock <IStepValidator>();

            _command = new SwapStepsCommand(_journeyId, _stepAId, _stepARowVersion, _stepBId, _stepBRowVersion);

            _dut = new SwapStepsCommandValidator(_journeyValidatorMock.Object, _stepValidatorMock.Object, _rowVersionValidatorMock.Object);
        }
        public void Setup()
        {
            // Arrange
            var journeyRepositoryMock = new Mock <IJourneyRepository>();

            var modeMock = new Mock <Mode>();

            modeMock.SetupGet(s => s.Plant).Returns(TestPlant);
            var responsibleMock = new Mock <Responsible>();

            responsibleMock.SetupGet(s => s.Plant).Returns(TestPlant);

            var journeyId = 1;
            var stepAId   = 2;
            var stepBId   = 3;

            var journey = new Journey(TestPlant, "TestJourney");

            journey.SetProtectedIdForTesting(journeyId);

            _stepA = new Step(TestPlant, _stepATitle, modeMock.Object, responsibleMock.Object);
            _stepA.SetProtectedIdForTesting(stepAId);

            journey.AddStep(_stepA);
            _sortKeyA = _stepA.SortKey;

            _stepB = new Step(TestPlant, _stepBTitle, modeMock.Object, responsibleMock.Object);
            _stepB.SetProtectedIdForTesting(stepBId);

            journey.AddStep(_stepB);
            _sortKeyB = _stepB.SortKey;

            journeyRepositoryMock.Setup(s => s.GetByIdAsync(journeyId))
            .Returns(Task.FromResult(journey));

            _command = new SwapStepsCommand(journeyId, stepAId, _rowVersionA, stepBId, _rowVersionB);

            _dut = new SwapStepsCommandHandler(
                journeyRepositoryMock.Object,
                UnitOfWorkMock.Object);
        }