public async Task GetPersonnelNumbersFileNotFoundTest()
        {
            var storageAccountSecret  = new StorageAccountSecret("myconnectionstring");
            var loggerMock            = new Mock <ILoggingRepository>();
            var blobClientFactoryMock = new Mock <IBlobClientFactory>();
            var blobClientMock        = new Mock <BlobClient>();
            var response = new Mock <Response>();

            blobClientMock.Setup(x => x.Exists(It.IsAny <CancellationToken>())).Returns(Response.FromValue <bool>(false, new Mock <Response>().Object));
            blobClientFactoryMock.Setup(x => x.GetBlobClient(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(blobClientMock.Object);

            var service          = new AzureUserReaderService(storageAccountSecret, loggerMock.Object, blobClientFactoryMock.Object);
            var personnelNumbers = await service.GetPersonnelNumbersAsync("validcontainer", "notvalid/blob/path/file.csv");
        }
        public async Task GetPersonnelNumbersExceptionTest()
        {
            var storageAccountSecret  = new StorageAccountSecret("myconnectionstring");
            var loggerMock            = new Mock <ILoggingRepository>();
            var blobClientFactoryMock = new Mock <IBlobClientFactory>();
            var blobClientMock        = new Mock <BlobClient>();

            var response = new Mock <Response>();

            response.SetupGet(x => x.Status).Returns((int)HttpStatusCode.RequestTimeout);

            var downloadResponse = new Mock <Response <BlobDownloadInfo> >();

            downloadResponse.Setup(x => x.GetRawResponse()).Returns(response.Object);

            blobClientMock.Setup(x => x.Exists(It.IsAny <CancellationToken>())).Returns(Response.FromValue <bool>(true, new Mock <Response>().Object));
            blobClientMock.Setup(x => x.DownloadAsync()).ReturnsAsync(downloadResponse.Object);
            blobClientFactoryMock.Setup(x => x.GetBlobClient(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(blobClientMock.Object);

            var service          = new AzureUserReaderService(storageAccountSecret, loggerMock.Object, blobClientFactoryMock.Object);
            var personnelNumbers = await service.GetPersonnelNumbersAsync("validcontainer", "valid/blob/path/file.csv");
        }
        public async Task GetPersonnelNumbersTest()
        {
            var storageAccountSecret  = new StorageAccountSecret("myconnectionstring");
            var loggerMock            = new Mock <ILoggingRepository>();
            var blobClientFactoryMock = new Mock <IBlobClientFactory>();
            var blobClientMock        = new Mock <BlobClient>();

            var personnelNumber = "1223344";
            var sw = new StreamWriter(new MemoryStream());

            sw.WriteLine("PersonnelNumbers");
            sw.WriteLine(personnelNumber);
            sw.Flush();
            sw.BaseStream.Position = 0;

            var bdi = BlobsModelFactory.BlobDownloadInfo(
                DateTimeOffset.Now,
                1,
                BlobType.Block,
                null, null,
                null,
                null,
                null,
                new Uri("http://file.url"),
                CopyStatus.Success,
                null,
                LeaseDurationType.Fixed,
                null,
                LeaseState.Available,
                null,
                LeaseStatus.Unlocked,
                new byte[0],
                null,
                ETag.All,
                0,
                null,
                false,
                null,
                null,
                1000,
                new byte[0],
                null,
                sw.BaseStream,
                DateTimeOffset.Now);

            var response = new Mock <Response>();

            response.SetupGet(x => x.Status).Returns((int)HttpStatusCode.OK);

            var bdiresponse = Response.FromValue <BlobDownloadInfo>(bdi, null);

            var downloadResponse = new Mock <Response <BlobDownloadInfo> >();

            downloadResponse.SetupGet(x => x.Value).Returns(bdiresponse);
            downloadResponse.Setup(x => x.GetRawResponse()).Returns(response.Object);

            blobClientMock.Setup(x => x.Exists(It.IsAny <CancellationToken>())).Returns(Response.FromValue <bool>(true, new Mock <Response>().Object));
            blobClientMock.Setup(x => x.DownloadAsync()).ReturnsAsync(downloadResponse.Object);

            blobClientFactoryMock.Setup(x => x.GetBlobClient(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(blobClientMock.Object);

            var service          = new AzureUserReaderService(storageAccountSecret, loggerMock.Object, blobClientFactoryMock.Object);
            var personnelNumbers = await service.GetPersonnelNumbersAsync("validcontainer", "valid/blob/path/file.csv");

            Assert.AreEqual(1, personnelNumbers.Count);
            Assert.AreEqual(personnelNumbers[0], personnelNumber);
        }