Exemplo n.º 1
0
        public async Task PostSession_SessionNotFound_Success()
        {
            // Arrange
            _authenticationRepositoryMock.Setup(m => m.AuthenticateUserAsync(Login, Password, false)).ReturnsAsync(_loginUser);

            var token = Guid.NewGuid().ToString();

            var httpClientProvider = new TestHttpClientProvider(request =>
            {
                if (request.Method == HttpMethod.Get)
                {
                    return(new HttpResponseMessage(HttpStatusCode.NotFound));
                }
                var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
                httpResponseMessage.Headers.Add("Session-Token", token);
                return(httpResponseMessage);
            });

            var controller = new SessionsController(_authenticationRepositoryMock.Object, httpClientProvider, _logMock.Object);

            // Act
            var result = (ResponseMessageResult)await controller.PostSession(SystemEncryptions.EncodeTo64UTF8(Login), SystemEncryptions.EncodeTo64UTF8(Password));

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, result.Response.StatusCode);
            Assert.AreEqual(token, result.Response.Headers.GetValues("Session-Token").FirstOrDefault());
            var expectedToken = await result.Response.Content.ReadAsStringAsync();

            Assert.AreEqual(expectedToken, token);
        }
Exemplo n.º 2
0
        private static ConfigController CreateController(Dictionary <string, Dictionary <string, string> > globalSettings = null, Dictionary <string, string> appSettings = null, Dictionary <string, bool> features = null)
        {
            var appSettingsRepo = new Mock <IApplicationSettingsRepository>();
            var featuresService = new Mock <IFeaturesService>();
            IHttpClientProvider httpClientProvider;

            if (globalSettings == null)
            {
                httpClientProvider = new TestHttpClientProvider(request => { throw new Exception(); });
            }
            else
            {
                var content = new ObjectContent(globalSettings.GetType(), globalSettings, new JsonMediaTypeFormatter());
                httpClientProvider = new TestHttpClientProvider(request => request.RequestUri.AbsolutePath.EndsWithOrdinal("settings/false") ?
                                                                new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = content
                } : null);
            }

            if (appSettings == null)
            {
                appSettingsRepo
                .Setup(it => it.GetSettingsAsync(true))
                .Throws(new ApplicationException());
            }
            else
            {
                appSettingsRepo
                .Setup(it => it.GetSettingsAsync(true))
                .ReturnsAsync(appSettings.Select(i => new ApplicationSetting {
                    Key = i.Key, Value = i.Value, Restricted = true
                }));
            }

            featuresService
            .Setup(fs => fs.GetFeaturesAsync())
            .ReturnsAsync(features == null
                    ? new Dictionary <string, bool> {
                { "Workflow", true }
            }
                    : features);

            var logMock    = new Mock <IServiceLogRepository>();
            var controller = new ConfigController(appSettingsRepo.Object, null, null, featuresService.Object, httpClientProvider, logMock.Object)
            {
                Request = new HttpRequestMessage()
            };

            controller.Request.Headers.Add("Session-Token", "");
            controller.Request.SetConfiguration(new HttpConfiguration());

            return(controller);
        }
Exemplo n.º 3
0
        public static PVOutputClient GetMockClient(out MockHttpMessageHandler mockHandler)
        {
            var provider = new TestHttpClientProvider();

            mockHandler = provider.MockHttpMessageHandler;
            mockHandler.Fallback.RespondPlainText("");
            var client = new PVOutputClient(TestConstants.PVOUTPUT_API_KEY, TestConstants.PVOUTPUT_SYSTEM_ID, new TestOutputLogger());

            client.HttpClientProvider = provider;
            return(client);
        }
Exemplo n.º 4
0
        public async Task LogError_Success()
        {
            // Arrange
            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.OK));
            var localLog           = new Mock <ILocalLog>().Object;
            var servicelog         = new ServiceLogRepository(httpClientProvider, localLog);

            // Act
            await servicelog.LogError("ServiceLogRepositoryTests", "Hello World");

            // Assert
            // Doesn't return anything
        }
        private static TestHttpClientProvider CreateTestHttpClientProvider(LicenseTransaction[] transactions)
        {
            var content            = new ObjectContent <IEnumerable <LicenseTransaction> >(transactions, new JsonMediaTypeFormatter());
            var httpClientProvider = new TestHttpClientProvider(request =>
                                                                request.RequestUri.PathAndQuery.EqualsOrdinalIgnoreCase("/svc/accesscontrol/licenses/transactions?days=1&consumerType=1")
                    ? new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = content
            }
                    : null);

            return(httpClientProvider);
        }
Exemplo n.º 6
0
        public async Task PostSessionSingleSignOn_ServerError_InternalServerErrorResult()
        {
            // Arrange
            _authenticationRepositoryMock.Setup(m => m.AuthenticateSamlUserAsync(SamlResponse)).ReturnsAsync(_loginUser);

            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.NotFound));

            var controller = new SessionsController(_authenticationRepositoryMock.Object, httpClientProvider, _logMock.Object);

            // Act
            IHttpActionResult result = await controller.PostSessionSingleSignOn(SamlResponse);

            // Assert
            Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult));
        }
Exemplo n.º 7
0
        public async Task PostSession_ServerError_InternalServerErrorResult()
        {
            // Arrange
            _authenticationRepositoryMock.Setup(m => m.AuthenticateUserAsync(Login, Password, false)).ReturnsAsync(_loginUser);

            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.NotFound));

            var controller = new SessionsController(_authenticationRepositoryMock.Object, httpClientProvider, _logMock.Object);

            // Act
            IHttpActionResult result = await controller.PostSession(SystemEncryptions.EncodeTo64UTF8(Login), SystemEncryptions.EncodeTo64UTF8(Password), true);

            // Assert
            Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult));
        }
Exemplo n.º 8
0
        public async Task LogErrorWithException_Success()
        {
            // Arrange
            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.OK));
            var localLog           = new Mock <ILocalLog>().Object;
            var servicelog         = new ServiceLogRepository(httpClientProvider, localLog);
            var innerEx            = new ApplicationException("Inner application exception");
            var ex = new Exception("Some bad thing", innerEx);

            // Act
            await servicelog.LogError("ServiceLogRepositoryTests", ex);

            // Assert
            // Doesn't return anything
        }
Exemplo n.º 9
0
        public async Task DeleteSession_SessionTokenIsNull_BadRequest()
        {
            // Arrange
            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.OK));

            var controller = new SessionsController(new AuthenticationRepository(), httpClientProvider, _logMock.Object)
            {
                Request = new HttpRequestMessage()
            };

            // Act
            IHttpActionResult result = await controller.DeleteSession();

            // Assert
            Assert.IsInstanceOfType(result, typeof(BadRequestResult));
        }
Exemplo n.º 10
0
        public async Task DeleteSession_Exception_InternalServerErrorResult()
        {
            // Arrange
            var httpRequestMessage = new HttpRequestMessage();

            httpRequestMessage.Headers.Add("Session-Token", Guid.NewGuid().ToString());

            var httpClientProvider = new TestHttpClientProvider(request => { throw new Exception(); });

            var controller = new SessionsController(new AuthenticationRepository(), httpClientProvider, _logMock.Object)
            {
                Request = httpRequestMessage
            };

            // Act
            IHttpActionResult result = await controller.DeleteSession();

            // Assert
            Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult));
        }
Exemplo n.º 11
0
        public async Task DeleteSession_SessionNotFound_ResponseMessageResult()
        {
            // Arrange
            var httpRequestMessage = new HttpRequestMessage();

            httpRequestMessage.Headers.Add("Session-Token", Guid.NewGuid().ToString());

            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.NotFound));

            var controller = new SessionsController(new AuthenticationRepository(), httpClientProvider, _logMock.Object)
            {
                Request = httpRequestMessage
            };

            // Act
            IHttpActionResult result = await controller.DeleteSession();

            // Assert
            Assert.IsInstanceOfType(result, typeof(ResponseMessageResult));
        }
Exemplo n.º 12
0
        public async Task LogCLog_Success()
        {
            // Arrange
            var httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.OK));
            var localLog           = new Mock <ILocalLog>().Object;
            var servicelog         = new ServiceLogRepository(httpClientProvider, localLog);
            var logEntry           = new CLogModel()
            {
                Source   = "ServiceLogRepositoryTests",
                LogLevel = LogLevelEnum.Informational,
                Message  = "Hello World",
                UserName = "******"
            };

            // Act
            await servicelog.LogCLog(logEntry);

            // Assert
            // Doesn't return anything
        }
Exemplo n.º 13
0
        public async Task LogClientMessage_Success()
        {
            // Arrange
            var            httpClientProvider = new TestHttpClientProvider(request => new HttpResponseMessage(HttpStatusCode.OK));
            var            localLog           = new Mock <ILocalLog>().Object;
            var            servicelog         = new ServiceLogRepository(httpClientProvider, localLog);
            ClientLogModel logModel           = new ClientLogModel
            {
                LogLevel   = 2,
                Message    = "test",
                Source     = "testClass",
                StackTrace = ""
            };

            // Act
            var result = await servicelog.LogClientMessage(logModel, "admin", "1dfg342d");

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
        }
Exemplo n.º 14
0
        public async Task PostSessionSingleSignOn_SessionFound_ConflictResult()
        {
            // Arrange
            _authenticationRepositoryMock.Setup(m => m.AuthenticateSamlUserAsync(SamlResponse)).ReturnsAsync(_loginUser);

            var token = Guid.NewGuid().ToString();

            var httpClientProvider = new TestHttpClientProvider(request =>
            {
                var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
                httpResponseMessage.Headers.Add("Session-Token", token);
                return(httpResponseMessage);
            });

            var controller = new SessionsController(_authenticationRepositoryMock.Object, httpClientProvider, _logMock.Object);

            // Act
            IHttpActionResult result = await controller.PostSessionSingleSignOn(SamlResponse);

            // Assert
            Assert.IsInstanceOfType(result, typeof(ConflictResult));
        }