private static void Report(FixedStepsProgressAdapter testSubject, string message, int currentStep, int totalSteps)
        {
            var testSubjectAsIProgress = (IProgress <FixedStepsProgress>)testSubject;
            var progressData           = new FixedStepsProgress(message, currentStep, totalSteps);

            testSubjectAsIProgress.Report(progressData);
        }
        public void Ctor_Valid()
        {
            // 1. Null message is ok, 0 current step is ok
            var progressData = new FixedStepsProgress(null, 0, 1);

            progressData.Message.Should().BeNull();
            progressData.CurrentStep.Should().Be(0);
            progressData.TotalSteps.Should().Be(1);

            // 2. Non-null message, current and total steps are different
            progressData = new FixedStepsProgress("some message", 101, 202);
            progressData.Message.Should().Be("some message");
            progressData.CurrentStep.Should().Be(101);
            progressData.TotalSteps.Should().Be(202);

            // 3. Non-null message, current and total steps are same
            progressData = new FixedStepsProgress("some other message", 202, 202);
            progressData.Message.Should().Be("some other message");
            progressData.CurrentStep.Should().Be(202);
            progressData.TotalSteps.Should().Be(202);
        }