コード例 #1
0
        public void Execute_ItemsAddedToCache()
        {
            var request = ExpectedRequests.MapRequestForKey(_knownLocations.First().Key);

            _sut.Execute(request, _logger).AsFile();

            Assert.That(_cache.Count, Is.EqualTo(1));
        }
コード例 #2
0
        public void Execute_ForKnownKey_ReturnsJpegContentType(string key)
        {
            var request = ExpectedRequests.MapRequestForKey(key);

            var response = _sut.Execute(request, _logger).AsFile();

            Assert.That(response.ContentType, Is.EqualTo("image/jpeg"));
        }
コード例 #3
0
        public async Task Run_KnownLocation_LocationMapHasCaption()
        {
            var request = ExpectedRequests.WhereIsFor("Foo");

            var response = await _sut.Execute(request, _logger).AsSlackResponse();

            Assert.That(response.attachments[0].text, Is.EqualTo("Foo is marked on the map."));
        }
コード例 #4
0
        public void Execute_NoValidKeyProvided_Returns404(string key)
        {
            var request = ExpectedRequests.MapRequestForKey(key);

            var response = _sut.Execute(request, _logger);

            Assert.That(response, Is.InstanceOf <NotFoundResult>());
        }
コード例 #5
0
        public async Task Run_MisspeltLocation_ReturnsLocation()
        {
            var request = ExpectedRequests.WhereIsFor("Fop");

            var response = await _sut.Execute(request, _logger).AsSlackResponse();

            Assert.That(response.text, Is.EqualTo("Foo"));
        }
コード例 #6
0
        public async Task Run_NoValidDetailsFound_ReturnsFriendlyError()
        {
            var request = ExpectedRequests.WhereIsFor(null);

            var response = await _sut.Execute(request, _logger).AsSlackResponse();

            Assert.That(response.text, Is.EqualTo("Sorry! We can't find that place either."));
        }
コード例 #7
0
        public async Task Run_KnownLocation_ReturnsLocationMap()
        {
            var request = ExpectedRequests.WhereIsFor("Foo");

            var response = await _sut.Execute(request, _logger).AsSlackResponse();

            Assert.That(response.attachments[0].image_url, Is.EqualTo("https://localhost/api/Map?code=key123&key=foo"));
        }
コード例 #8
0
        public async Task Run_NoLocationRequested_ReturnsFriendlyError(string messageContents)
        {
            var request = ExpectedRequests.CapacityFor(messageContents);

            var response = await _sut.Execute(request, _logger).AsSlackResponse();

            Assert.That(response.text, Is.EqualTo("Sorry! You need to specify a location."));
        }
コード例 #9
0
        public async Task Run_KnownLocationRequested_LogsCheckinRequest()
        {
            var request = ExpectedRequests.CheckInFor("gracechurch::245-210");

            var response = await _sut.Execute(request, _logger) as JsonResult;

            Assert.That(_capacityService.Called, Is.True);
        }
コード例 #10
0
        public async Task Run_KnownLocationRequested_ThanksUserAtTheEnd()
        {
            var request = ExpectedRequests.CheckInFor("gracechurch::245-210");

            var response = await _sut.Execute(request, _logger) as JsonResult;

            Assert.That(response.Value.ToString(), Is.EqualTo("{ message = Thanks for checking in! }"));
        }
コード例 #11
0
        public async Task Run_KnownLocationRequested_ReturnsHintAsToAvailability()
        {
            var request = ExpectedRequests.CheckInFor("gracechurch::245-210");

            var response = await _sut.Execute(request, _logger) as JsonResult;

            Assert.That(response.StatusCode, Is.EqualTo(StatusCodes.Status200OK));
        }
コード例 #12
0
        public async Task Run_NoLocationRequested_ReturnsBadRequest(string messageContents)
        {
            var request = ExpectedRequests.CheckInFor(messageContents);

            var response = await _sut.Execute(request, _logger) as BadRequestResult;

            Assert.That(response.StatusCode, Is.EqualTo(StatusCodes.Status400BadRequest));
        }
コード例 #13
0
        public void Execute_ForKnownKey_ReturnsJpegFileFromImageGenerator()
        {
            _fakeGenerator.Returns = new byte[] { 1, 2, 3, 4 };
            var request = ExpectedRequests.MapRequestForKey(_knownLocations.First().Key);

            var response = _sut.Execute(request, _logger).AsFile();

            Assert.That(response.FileContents, Is.EqualTo(_fakeGenerator.Returns));
        }
コード例 #14
0
        public void Execute_MultipleRequestsForSameKey_ImageSourcedFromCache()
        {
            var request = ExpectedRequests.MapRequestForKey(_knownLocations.First().Key);

            _sut.Execute(request, _logger).AsFile();
            _sut.Execute(request, _logger).AsFile();

            Assert.That(_fakeGenerator.Called, Is.EqualTo(1));
        }
コード例 #15
0
        public async Task Run_KnownLocationRequested_IncludesAHeatMapImage()
        {
            var request = ExpectedRequests.CapacityFor("gracechurch");

            var response = await _sut.Execute(request, _logger).AsSlackResponse();

            Assert.That(response.attachments.Single().image_url, Is.Not.Null);
            Assert.That(response.attachments.Single().image_url, Does.Contain("HeatMap"));
        }
コード例 #16
0
        public async Task Run_KnownLocationRequested_ReturnsHintAsToAvailability(string locName)
        {
            var request  = ExpectedRequests.CapacityFor(locName);
            var capacity = new Random().Next(0, 100);
            var used     = new Random().Next(0, 100);

            _knownLocations.Last().Capacity = capacity;
            _capacityService.ReturnsThis = used;

            var response = await _sut.Execute(request, _logger).AsSlackResponse();

            Assert.That(response.text, Is.EqualTo($"There are {used} of {capacity} desks used in {locName}."));
            Assert.That(response.attachments.Single().image_url, Is.Not.Null);
        }