public void ProcessQuery_with_StoreAspAssessNoSession_action_passes_query_params()
        {
            // Given
            var query = defaultStoreAspAssessQueryParams;

            query.Action = "StoreAspAssessNoSession";

            var expectedResponse = TrackerEndpointResponse.Success;

            A.CallTo(
                () => actionService.StoreAspAssessNoSession(
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <string> ._
                    )
                ).Returns(expectedResponse);

            // When
            var result = trackerService.ProcessQuery(query, sessionVariablesForStoreAspProgressNoSession);

            // Then
            result.Should().Be(expectedResponse);
            A.CallTo(
                () => actionService.StoreAspAssessNoSession(
                    query.Version !.Value,
                    query.SectionId !.Value,
                    query.Score !.Value,
                    query.CandidateId !.Value,
                    query.CustomisationId !.Value,
                    DefaultSessionId
                    )
                )
            .MustHaveHappenedOnceExactly();
        }
        StoreAspAssessNoSession_returns_exception_from_query_param_and_progress_validation()
        {
            // Given
            A.CallTo(
                () => storeAspService.GetProgressAndValidateInputsForStoreAspAssess(
                    A <int?> ._,
                    A <int?> ._,
                    A <int?> ._,
                    A <int?> ._
                    )
                ).Returns((TrackerEndpointResponse.StoreAspAssessException, null));

            // When
            var result = trackerActionService.StoreAspAssessNoSession(
                DefaultCustomisationVersion,
                DefaultSectionId,
                DefaultScore,
                DefaultDelegateId,
                DefaultCustomisationId,
                DefaultSessionId.ToString()
                );

            // Then
            using (new AssertionScope())
            {
                result.Should().Be(TrackerEndpointResponse.StoreAspAssessException);
                A.CallTo(
                    () => storeAspService.GetProgressAndValidateInputsForStoreAspAssess(
                        DefaultCustomisationVersion,
                        DefaultScore,
                        DefaultDelegateId,
                        DefaultCustomisationId
                        )
                    ).MustHaveHappenedOnceExactly();
                A.CallTo(() => storeAspService.GetAndValidateSectionAssessmentDetails(A <int?> ._, A <int> ._))
                .MustNotHaveHappened();
                A.CallTo(
                    () => storeAspService.ParseSessionIdAndValidateSessionForStoreAspNoSessionEndpoints(
                        A <string?> ._,
                        A <int> ._,
                        A <int> ._,
                        A <TrackerEndpointResponse> ._
                        )
                    ).MustNotHaveHappened();
                CallsAfterStoreAspAssessValidationMustNotHaveHappened();
            }
        }