public async Task GivenKnownKey_WhenAuditingPackages_ThenAddsProjectToTenant()
        {
            StateUnderTestBuilder builder = new StateUnderTestBuilder(_client);

            var context = await builder.WithUser(true, "anyTenant", $"{Guid.NewGuid()}")
                          .WithKey("anyKey", "anyTenant")
                          .Build();

            _client.DefaultRequestHeaders.Add("X-API-KEY", $"{context.Keys[0].Value}");

            await _client.PostAsJsonAsync("/api/packages",
                                          new AuditRequest
            {
                Project  = "anyProject",
                Version  = "anyVersion",
                Packages = new[] { new ProjectPackages {
                                       Name = "FluentValidation", Version = "1.0.1"
                                   } }
            });

            var tenantJson = await _client.GetStringAsync($"/api/tenants?name=anyTenant");

            var tenant = JsonConvert.DeserializeObject <TenantOverview>(tenantJson);

            tenant.Projects.First().Name.Should().Be("anyProject");
            tenant.Projects.First().Version.Should().Be("anyVersion");
        }
        public async Task GivenUnknownKey_WhenAuditingPackages_ThenReturns401()
        {
            _client.DefaultRequestHeaders.Add("X-API-KEY", $"{Guid.NewGuid()}");

            StateUnderTestBuilder builder = new StateUnderTestBuilder(_client);

            var context = await builder.WithUser(true, "anyTenant", $"{Guid.NewGuid()}")
                          .Build();

            var response = await _client.PostAsJsonAsync("/api/packages",
                                                         new AuditRequest
            {
                Packages = new[] { new ProjectPackages {
                                       Name = "FluentValidation", Version = "1.0.1"
                                   } }
            });

            await response.Content.ReadAsAsync <AuditResponse>();

            Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Unauthorized));
        }