public async Task RunApprovedAsyncMethod(string submissionNumber, string userUuid)
        {
            // preparation
            var diagnosisRepo = new Mock <IDiagnosisRepository>();
            var keyModel      = new TemporaryExposureKeyModel()
            {
                id = "id123"
            };
            var model = new DiagnosisModel()
            {
                SubmissionNumber = submissionNumber,
                UserUuid         = userUuid,
                Keys             = new[] { keyModel }
            };

            diagnosisRepo.Setup(_ => _.GetAsync(It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(model);
            var tekRepo      = new Mock <ITemporaryExposureKeyRepository>();
            var logger       = new Mock.LoggerMock <Covid19Radar.Api.External.DiagnosisApi>();
            var diagnosisApi = new Covid19Radar.Api.External.DiagnosisApi(diagnosisRepo.Object, tekRepo.Object, logger);
            var context      = new Mock.HttpContextMock();

            tekRepo.Setup(_ => _.UpsertAsync(It.IsAny <TemporaryExposureKeyModel>()))
            .Verifiable();

            // action
            await diagnosisApi.RunApprovedAsync(context.Request, submissionNumber, userUuid);

            // assert
        }
        public async Task RunAsyncMethod(string title, string message, System.Type ResultType)
        {
            // preparation
            var result = new Mock <ItemResponse <NotificationMessageModel> >();

            result.SetupGet(_ => _.Resource)
            .Returns(new NotificationMessageModel()
            {
                Message = message
            });
            var cosmosNotification = new Mock <Container>();

            cosmosNotification.Setup(_ => _.CreateItemAsync(It.IsAny <NotificationMessageModel>(),
                                                            It.IsAny <PartitionKey?>(),
                                                            It.IsAny <ItemRequestOptions>(),
                                                            It.IsAny <CancellationToken>()))
            .ReturnsAsync(result.Object);
            var cosmos = new Mock <ICosmos>();

            cosmos.SetupGet(_ => _.Notification)
            .Returns(cosmosNotification.Object);
            var notification          = new Mock <INotificationService>();
            var logger                = new Mock.LoggerMock <Covid19Radar.Api.External.NotificationCreateApi>();
            var notificationCreateApi = new Covid19Radar.Api.External.NotificationCreateApi(cosmos.Object, notification.Object, logger);
            var context               = new Mock.HttpContextMock();
            var param = new Api.External.Models.NotificationCreateParameter()
            {
                Title   = title,
                Message = message
            };
            var bodyString = Newtonsoft.Json.JsonConvert.SerializeObject(param);

            using var stream = new System.IO.MemoryStream();
            using (var writer = new System.IO.StreamWriter(stream, leaveOpen: true))
            {
                await writer.WriteAsync(bodyString);

                await writer.FlushAsync();
            }
            stream.Seek(0, System.IO.SeekOrigin.Begin);
            context._Request.Body = stream;

            // action
            var actual = await notificationCreateApi.RunAsync(context.Request);

            // assert
            Assert.IsInstanceOfType(actual, ResultType);
        }
        public async Task RunAsyncMethod()
        {
            // preparation
            var diagnosisRepo = new Mock <IDiagnosisRepository>();

            diagnosisRepo.Setup(_ => _.SubmitDiagnosisAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <TemporaryExposureKeyModel[]>()))
            .Returns(Task.CompletedTask);
            var tekRepo      = new Mock <ITemporaryExposureKeyRepository>();
            var logger       = new Mock.LoggerMock <Covid19Radar.Api.External.DiagnosisApi>();
            var diagnosisApi = new Covid19Radar.Api.External.DiagnosisApi(diagnosisRepo.Object, tekRepo.Object, logger);
            var context      = new Mock.HttpContextMock();

            // action
            await diagnosisApi.RunAsync(context.Request);

            // assert
        }