public async Task SegmentControllerPutReturnsAlreadyReportedForUpdate(string mediaTypeName) { // Arrange const HttpStatusCode expectedResponse = HttpStatusCode.AlreadyReported; var existingModel = A.Fake <JobProfileOverviewSegmentModel>(); existingModel.SequenceNumber = 123; var modelToUpsert = A.Fake <JobProfileOverviewSegmentModel>(); modelToUpsert.SequenceNumber = existingModel.SequenceNumber - 1; var controller = BuildSegmentController(mediaTypeName); A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).Returns(existingModel); // Act var result = await controller.Put(modelToUpsert).ConfigureAwait(false); // Assert A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).MustHaveHappenedOnceExactly(); var statusCodeResult = Assert.IsType <StatusCodeResult>(result); Assert.Equal((int)expectedResponse, statusCodeResult.StatusCode); controller.Dispose(); }
public async Task ReturnsSuccessForJsonMediaType(string mediaTypeName) { // Arrange var expectedResult = A.Fake <JobProfileOverviewSegmentModel>(); var fakeBodyViewModel = A.Fake <BodyViewModel>(); var fakeOverviewApiModel = A.Fake <OverviewApiModel>(); var controller = BuildSegmentController(mediaTypeName); expectedResult.CanonicalName = ArticleName; expectedResult.Data = A.Fake <JobProfileOverviewSegmentDataModel>(); fakeBodyViewModel.Data = A.Fake <BodyDataViewModel>(); A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).Returns(expectedResult); A.CallTo(() => FakeMapper.Map <BodyViewModel>(A <JobProfileOverviewSegmentModel> .Ignored)).Returns(fakeBodyViewModel); A.CallTo(() => FakeMapper.Map <OverviewApiModel>(A <JobProfileOverviewSegmentDataModel> .Ignored)).Returns(fakeOverviewApiModel); // Act var result = await controller.Body(documentId).ConfigureAwait(false); // Assert A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => FakeMapper.Map <BodyViewModel>(A <JobProfileOverviewSegmentModel> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => FakeMapper.Map <OverviewApiModel>(A <JobProfileOverviewSegmentDataModel> .Ignored)).MustHaveHappenedOnceExactly(); var jsonResult = Assert.IsType <OkObjectResult>(result); Assert.IsAssignableFrom <OverviewApiModel>(jsonResult.Value); controller.Dispose(); }
public async Task ReturnsNotAcceptableForInvalidMediaType(string mediaTypeName) { // Arrange var expectedResult = A.Fake <JobProfileOverviewSegmentModel>(); var fakeBodyViewModel = A.Fake <BodyViewModel>(); var controller = BuildSegmentController(mediaTypeName); expectedResult.CanonicalName = ArticleName; expectedResult.Data = A.Fake <JobProfileOverviewSegmentDataModel>(); fakeBodyViewModel.Data = A.Fake <BodyDataViewModel>(); A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).Returns(expectedResult); A.CallTo(() => FakeMapper.Map <BodyViewModel>(A <JobProfileOverviewSegmentModel> .Ignored)).Returns(fakeBodyViewModel); // Act var result = await controller.Body(documentId).ConfigureAwait(false); // Assert A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).MustHaveHappenedOnceExactly(); A.CallTo(() => FakeMapper.Map <BodyViewModel>(A <JobProfileOverviewSegmentModel> .Ignored)).MustHaveHappenedOnceExactly(); var statusResult = Assert.IsType <StatusCodeResult>(result); Assert.Equal((int)HttpStatusCode.NotAcceptable, statusResult.StatusCode); controller.Dispose(); }
public async Task ReturnsNoContentWhenNoData(string mediaTypeName) { // Arrange var controller = BuildSegmentController(mediaTypeName); A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).Returns((JobProfileOverviewSegmentModel)null); // Act var result = await controller.Body(documentId).ConfigureAwait(false); // Assert A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).MustHaveHappenedOnceExactly(); var statusResult = Assert.IsType <NoContentResult>(result); Assert.Equal((int)HttpStatusCode.NoContent, statusResult.StatusCode); controller.Dispose(); }
public async Task SegmentControllerPostReturnsSuccessForCreate(string mediaTypeName) { // Arrange const HttpStatusCode expectedResponse = HttpStatusCode.Created; var overviewSegmentModel = A.Fake <JobProfileOverviewSegmentModel>(); var controller = BuildSegmentController(mediaTypeName); A.CallTo(() => FakeJobProfileOverviewSegmentService.GetByIdAsync(A <Guid> .Ignored)).Returns((JobProfileOverviewSegmentModel)null); A.CallTo(() => FakeJobProfileOverviewSegmentService.UpsertAsync(A <JobProfileOverviewSegmentModel> .Ignored)).Returns(expectedResponse); // Act var result = await controller.Post(overviewSegmentModel).ConfigureAwait(false); // Assert A.CallTo(() => FakeJobProfileOverviewSegmentService.UpsertAsync(A <JobProfileOverviewSegmentModel> .Ignored)).MustHaveHappenedOnceExactly(); var okResult = Assert.IsType <StatusCodeResult>(result); Assert.Equal((int)HttpStatusCode.Created, okResult.StatusCode); controller.Dispose(); }