StoreAspProgressAndSendEmailIfComplete_stores_AspProgress_and_does_not_CheckProgressForCompletion_if_TutorialStatus_is_not_2(
            int tutorialStatus
            )
        {
            // When
            storeAspService.StoreAspProgressAndSendEmailIfComplete(
                defaultCourseProgress,
                DefaultCustomisationVersion,
                DefaultLmGvSectionRow,
                DefaultTutorialId,
                DefaultTutorialTime,
                tutorialStatus
                );

            // Then
            A.CallTo(
                () => progressService.StoreAspProgressV2(
                    DefaultProgressId,
                    DefaultCustomisationVersion,
                    DefaultLmGvSectionRow,
                    DefaultTutorialId,
                    DefaultTutorialTime,
                    tutorialStatus
                    )
                ).MustHaveHappenedOnceExactly();
            A.CallTo(
                () => progressService.CheckProgressForCompletionAndSendEmailIfCompleted(A <DetailedCourseProgress> ._)
                ).MustNotHaveHappened();
        }
        public void StoreAspProgressV2_returns_exception_from_validation()
        {
            // Given
            A.CallTo(
                () => storeAspService.GetProgressAndValidateCommonInputsForStoreAspProgressEndpoints(
                    A <int?> ._,
                    A <int?> ._,
                    A <int?> ._,
                    A <int?> ._,
                    A <int?> ._,
                    A <int?> ._,
                    A <int?> ._
                    )
                ).Returns((TrackerEndpointResponse.StoreAspProgressException, null));

            // When
            var result = trackerActionService.StoreAspProgressV2(
                DefaultProgressId,
                DefaultCustomisationVersion,
                DefaultLmGvSectionRow,
                DefaultTutorialId,
                DefaultTutorialTime,
                DefaultTutorialStatus,
                DefaultDelegateId,
                DefaultCustomisationId
                );

            // Then
            result.Should().Be(TrackerEndpointResponse.StoreAspProgressException);
            A.CallTo(
                () => storeAspService.StoreAspProgressAndSendEmailIfComplete(
                    A <DetailedCourseProgress> ._,
                    A <int> ._,
                    A <string?> ._,
                    A <int> ._,
                    A <int> ._,
                    A <int> ._
                    )
                ).MustNotHaveHappened();
        }