Esempio n. 1
0
        public void CreateMethod()
        {
            // preparation
            var eventLogRepository      = new Mock <IEventLogRepository>();
            var validationServer        = new Mock <IValidationServerService>();
            var deviceValidationService = new Mock <IDeviceValidationService>();
            var logger = new Mock.LoggerMock <V1EventLog>();

            var eventLogApi = new V1EventLog(
                eventLogRepository.Object,
                validationServer.Object,
                deviceValidationService.Object,
                logger
                );
        }
Esempio n. 2
0
        public async Task RunAsyncMethod(
            bool isValidRoute,
            bool isValidDevice,
            string contentLength,
            string jsonFileName,
            int expectedStatusCode,
            int expectedSavedItemCount
            )
        {
            // preparation
            var eventLogRepository      = new Mock <IEventLogRepository>();
            var validationServer        = new Mock <IValidationServerService>();
            var deviceValidationService = new Mock <IDeviceValidationService>();
            var logger = new Mock.LoggerMock <V1EventLog>();

            var eventLogApi = new V1EventLog(
                eventLogRepository.Object,
                validationServer.Object,
                deviceValidationService.Object,
                logger
                );

            if (isValidRoute)
            {
                validationServer
                .Setup(x => x.Validate(It.IsAny <HttpRequest>()))
                .Returns(IValidationServerService.ValidateResult.Success);
            }
            else
            {
                validationServer
                .Setup(x => x.Validate(It.IsAny <HttpRequest>()))
                .Returns(IValidationServerService.ValidateResult.InvalidAzureFrontDoorId);
            }

            deviceValidationService
            .Setup(x => x.Validation(It.IsAny <string>(), It.IsAny <IDeviceVerification>(), It.IsAny <DateTimeOffset>()))
            .ReturnsAsync(isValidDevice);


            var context = new Mock <HttpContext>();

            // Conetnt-Length header
            context.Setup(_ => _.Request.Headers).Returns(new HeaderDictionary());
            if (contentLength != null)
            {
                IHeaderDictionary headers = new HeaderDictionary()
                {
                    { "Content-Length", contentLength }
                };
                context.Setup(_ => _.Request.Headers).Returns(headers);
            }

            // body
            string bodyString = GetTestJson(jsonFileName);

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

                await writer.FlushAsync();
            }
            stream.Seek(0, SeekOrigin.Begin);
            context.Setup(x => x.Request.Body).Returns(stream);

            // action
            var result = await eventLogApi.RunAsync(context.Object.Request);

            Assert.IsTrue(result is StatusCodeResult);
            if (result is StatusCodeResult statusCodeResult)
            {
                Assert.AreEqual(expectedStatusCode, statusCodeResult.StatusCode);
            }

            eventLogRepository
            .Verify(x => x.UpsertAsync(It.IsAny <EventLogModel>()), Times.Exactly(expectedSavedItemCount));
        }