public async Task CheckUsersValidityAsync_Should_InvokeRemoteGraphService_Once_WhenAllEmailsValid()
        {
            // ARRANGE
            string _;

            _mockCache.Setup(x => x.Exists(It.IsAny <string>())).Returns(false);
            var validEmails = new HashSet <string>()
            {
                "*****@*****.**"
            };
            var adUserCheckResult = new List <AdUserDto>()
            {
                new AdUserDto(Guid.NewGuid().ToString(), validEmails.First(), true)
            };

            _mockRemoteGraphService.Setup(x => x.CheckUsersValidityAsync(validEmails)).ReturnsAsync(adUserCheckResult);

            // ACT
            var resultList = await _activeDirectoryService.CheckUsersValidityAsync(validEmails);

            // ASSERT
            _mockCache.Verify(x => x.Exists(It.IsAny <string>()), Times.Once);
            _mockRemoteGraphService.Verify(x => x.CheckUsersValidityAsync(It.IsAny <HashSet <string> >()), Times.Once);

            Assert.NotNull(resultList);
            Assert.Single(resultList);
            Assert.NotNull(resultList.FirstOrDefault(x => x.Mail == validEmails.First()));
        }
        public async Task <IActionResult> CheckUsersValidityAsync([FromBody] ISet <string> userEmails)
        {
            var userList = await _activeDirectoryService.CheckUsersValidityAsync(userEmails);

            return(Ok(userList));
        }