public async Task Validation_Should_NotThrowException_OnMatching_RefererVSToken_ClientKey()
        {
            // Arrange
            var sut     = new ClientValidationMiddleware((innerHttpContext) => Task.FromResult(new DefaultHttpContext()));
            var context = new DefaultHttpContext();

            context.Request.Headers["Authorization"] = "Bearer " + NMJ_TOKEN;
            context.Request.Headers["referer"]       = "https://mycars.io/nmj/someroute/someotherroute";
            // Act & Assert does not throw exception
            await sut.Invoke(context);
        }
        public async Task Validation_Should_NotThrowException_OnMatching_HeaderVSToken_ClientKey()
        {
            // Arrange
            var sut     = new ClientValidationMiddleware((innerHttpContext) => Task.FromResult(new DefaultHttpContext()));
            var context = new DefaultHttpContext();

            context.Request.Headers["Authorization"]    = "Bearer " + NMJ_TOKEN;
            context.Request.Headers["Gibson-ClientKey"] = "nmj";

            // Act & Assert does not throw exception
            await sut.Invoke(context);
        }
        public async Task Validation_Should_SetHeader_WhenValidReferer_WithNoHeaderSet()
        {
            // Arrange
            var sut     = new ClientValidationMiddleware((innerHttpContext) => Task.FromResult(new DefaultHttpContext()));
            var context = new DefaultHttpContext();

            context.Request.Headers["referer"] = "https://mycars.io/nmj/something";
            // Act
            await sut.Invoke(context);

            // Assert
            var clientKey = context.Request.Headers["Gibson-ClientKey"];

            Assert.Equal("nmj", clientKey.ToString());
        }