public void Get_NotFound() { // Arrange var mapper = Substitute.For <IMapper>(); var repo = Substitute.For <IRepository>(); var logger = Substitute.For <ILogger <Records> >(); var target = new Records(repo, mapper); // Act var result = target.Get(null, "testAppName", "dataType", "version1", logger).Result; // Assert Assert.IsType <NotFoundObjectResult>(result); }
public void Get_Throws() { // Arrange var mapper = Substitute.For <IMapper>(); var repo = Substitute.For <IRepository>(); repo.FindRecord(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()).Returns(Task.FromException <Model.Record>(new System.Exception("Boom"))); var logger = Substitute.For <ILogger <Records> >(); var target = new Records(repo, mapper); // Act var result = target.Get(null, "testAppName", "dataType", "version1", logger).Result; // Assert logger.Received().Log( LogLevel.Error, Arg.Any <EventId>(), Arg.Is <object>(o => o.ToString() == "Boom"), null, Arg.Any <Func <object, Exception, string> >()); Assert.IsType <BadRequestObjectResult>(result); }
public void Get_Ok() { // Arrange var expectedCreatedDate = DateTime.UtcNow; var expectedModifiedDate = DateTime.UtcNow.AddMinutes(1); var configuration = new MapperConfiguration(cfg => { cfg.CreateMap <Model.Record, Model.Contracts.RecordContract>(); }); var mapper = configuration.CreateMapper(); var repo = Substitute.For <IRepository>(); repo.FindRecord(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()) .Returns(new Model.Record { ApplicationName = "Unit Tests", DataType = "Test Result", DateCreated = expectedCreatedDate, DateModified = expectedModifiedDate, Version = "1.0", Value = "Pass" }); var logger = Substitute.For <ILogger <Records> >(); var target = new Records(repo, mapper); // Act var result = target.Get(null, "testAppName", "dataType", "version1", logger).Result; // Assert Assert.IsType <OkObjectResult>(result); Assert.Equal("Pass", ((Model.Contracts.RecordContract)((OkObjectResult)result).Value).Value); Assert.Equal(expectedCreatedDate, ((Model.Contracts.RecordContract)((OkObjectResult)result).Value).DateCreated); Assert.Equal(expectedModifiedDate, ((Model.Contracts.RecordContract)((OkObjectResult)result).Value).DateModified); }