public void QueryAsync_WhenQueryIsNull_ThrowsArgumentNullException()
        {
            QueryHandler sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.QueryAsync(null));

            Assert.That(result.ParamName, Is.EqualTo("query"));
        }
        public async Task QueryAsync_WhenCalled_AssertStateIdentifierWasCalledOnQuery()
        {
            QueryHandler sut = CreateSut();

            Mock <IGetAuthorizeUriForMicrosoftGraphQuery> queryMock = CreateQueryMock();
            await sut.QueryAsync(queryMock.Object);

            queryMock.Verify(m => m.StateIdentifier, Times.Once);
        }
        public async Task QueryAsync_WhenCalled_ReturnAuthorizeUriFromMicrosoftGraphRepository()
        {
            Uri          authorizeUri = CreateUri();
            QueryHandler sut          = CreateSut(authorizeUri);

            IGetAuthorizeUriForMicrosoftGraphQuery query = CreateQueryMock().Object;
            Uri result = await sut.QueryAsync(query);

            Assert.That(result, Is.EqualTo(authorizeUri));
        }
        public async Task QueryAsync_WhenCalled_AssertGetAuthorizeUriAsyncWasCalledOnMicrosoftGraphRepository()
        {
            QueryHandler sut = CreateSut();

            Uri  redirectUri     = CreateUri();
            Guid stateIdentifier = Guid.NewGuid();
            IGetAuthorizeUriForMicrosoftGraphQuery query = CreateQueryMock(redirectUri, stateIdentifier).Object;
            await sut.QueryAsync(query);

            _microsoftGraphRepositoryMock.Verify(m => m.GetAuthorizeUriAsync(It.Is <Uri>(value => value == redirectUri), It.Is <Guid>(value => value == stateIdentifier)), Times.Once);
        }