示例#1
0
        public async Task HandleRequestAsync_ValidRequest_VehicleDataFoundReturnsResponseWithExpectedContent()
        {
            // Arrange

            const string vin = "VIN";

            var data = new VehicleData
            {
                CustomerId   = 1,
                VIN          = "VIN",
                Make         = "BMW",
                Model        = "118d",
                ModelYear    = 2016,
                ImportedDate = DateTime.UtcNow
            };

            var fakeValidateVIN = A.Fake <IValidateVIN>();

            A.CallTo(() => fakeValidateVIN.IsValid(vin)).Returns(true);

            var fakeVehicleDataService = A.Fake <IVehicleDataService>();

            A.CallTo(() => fakeVehicleDataService.GetVehicleDataAsync(vin)).Returns(data);

            IServiceProvider sp = new ServiceCollection()
                                  .AddSingleton(fakeValidateVIN)
                                  .AddSingleton(fakeVehicleDataService)
                                  .BuildServiceProvider();

            var context = A.Fake <ILambdaContext>();

            A.CallTo(() => context.Logger).Returns(A.Fake <ILambdaLogger>());

            APIGatewayProxyRequest dummyRequestEvent = new APIGatewayProxyRequest
            {
                PathParameters = new Dictionary <string, string> {
                    { "id", vin }
                }
            };

            var sut = new GetHandler(sp);

            // Act

            APIGatewayProxyResponse result = await sut.HandleRequestAsync(dummyRequestEvent, context);

            ResponseBody responseBody = JsonConvert.DeserializeObject <ResponseBody>(result.Body);

            // Assert

            Assert.Equal(data.CustomerId, responseBody.CustomerId);
            Assert.Equal(data.VIN, responseBody.VIN);
            Assert.Equal(data.Make, responseBody.Make);
            Assert.Equal(data.Model, responseBody.Model);
            Assert.Equal(data.ModelYear, responseBody.ModelYear);
            Assert.Equal(data.ImportedDate, responseBody.ImportedDate);
        }
示例#2
0
        public async Task HandleRequestAsync_ValidRequest_VehicleDataFoundReturnsOKResponse()
        {
            // Arrange

            const string vin = "VIN";

            var data = new VehicleData
            {
                CustomerId   = 1,
                VIN          = "VIN",
                Make         = "BMW",
                Model        = "118d",
                ModelYear    = 2016,
                ImportedDate = DateTime.UtcNow
            };

            var fakeValidateVIN = A.Fake <IValidateVIN>();

            A.CallTo(() => fakeValidateVIN.IsValid(vin)).Returns(true);

            var fakeVehicleDataService = A.Fake <IVehicleDataService>();

            A.CallTo(() => fakeVehicleDataService.GetVehicleDataAsync(vin)).Returns(data);

            IServiceProvider sp = new ServiceCollection()
                                  .AddSingleton(fakeValidateVIN)
                                  .AddSingleton(fakeVehicleDataService)
                                  .BuildServiceProvider();

            var context = A.Fake <ILambdaContext>();

            A.CallTo(() => context.Logger).Returns(A.Fake <ILambdaLogger>());

            APIGatewayProxyRequest dummyRequestEvent = new APIGatewayProxyRequest
            {
                PathParameters = new Dictionary <string, string> {
                    { "id", vin }
                }
            };

            var sut = new GetHandler(sp);

            // Act

            APIGatewayProxyResponse result = await sut.HandleRequestAsync(dummyRequestEvent, context);

            // Assert

            Assert.Equal((int)HttpStatusCode.OK, result.StatusCode);
        }
示例#3
0
        public async Task HandleRequestAsync_ValidRequest_NoVehicleDataFoundReturnsNotFoundResponse()
        {
            // Arrange

            const string vin = "VIN";

            var fakeValidateVIN = A.Fake <IValidateVIN>();

            A.CallTo(() => fakeValidateVIN.IsValid(vin)).Returns(true);

            var fakeVehicleDataService = A.Fake <IVehicleDataService>();

            A.CallTo(() => fakeVehicleDataService.GetVehicleDataAsync(vin)).Returns <VehicleData>(null);

            IServiceProvider sp = new ServiceCollection()
                                  .AddSingleton(fakeValidateVIN)
                                  .AddSingleton(fakeVehicleDataService)
                                  .BuildServiceProvider();

            var context = A.Fake <ILambdaContext>();

            A.CallTo(() => context.Logger).Returns(A.Fake <ILambdaLogger>());

            APIGatewayProxyRequest dummyRequestEvent = new APIGatewayProxyRequest
            {
                PathParameters = new Dictionary <string, string> {
                    { "id", vin }
                }
            };

            var sut = new GetHandler(sp);

            // Act

            APIGatewayProxyResponse result = await sut.HandleRequestAsync(dummyRequestEvent, context);

            // Assert

            Assert.Equal((int)HttpStatusCode.NotFound, result.StatusCode);
        }