public async Task Post_ShouldCallHelper() { //Arrange var expectedId = 1; var expectedImageName = "testImageName"; var expectedImageContentUri = "https://whoisthatserverimages.blob.core.windows.net/images/Domantas_test.jpg"; var expectedPersonFirstName = "testFirstName"; var expectedPersonLastName = "testLastName"; var expectedDescriptiveSentence = "t1"; var expectedScore = 1; var expectedDatabaseImageElement = new DatabaseImageElement() { Id = expectedId, ImageContentUri = expectedImageContentUri, ImageName = expectedImageName, PersonFirstName = expectedPersonFirstName, PersonLastName = expectedPersonLastName, DescriptiveSentence = expectedDescriptiveSentence, Score = expectedScore }; var fakeDatabaseImageElementHelper = A.Fake <IDatabaseImageElementHelper>(); A.CallTo(() => fakeDatabaseImageElementHelper.InsertNewImageElement(expectedId, expectedImageName, expectedImageContentUri, expectedPersonFirstName, expectedPersonLastName, expectedDescriptiveSentence, expectedScore)) .Returns(expectedDatabaseImageElement); var databaseImageElementController = new DatabaseImageElementController() { DatabaseImageElementHelper = fakeDatabaseImageElementHelper, Request = new HttpRequestMessage() }; //Act var result = databaseImageElementController.Post(expectedDatabaseImageElement); //Assert A.CallTo(() => fakeDatabaseImageElementHelper.InsertNewImageElement(expectedId, expectedImageName, expectedImageContentUri, expectedPersonFirstName, expectedPersonLastName, expectedDescriptiveSentence, expectedScore)) .MustHaveHappenedOnceExactly(); var httpResponse = await result.ExecuteAsync(new CancellationToken()); var jsonContent = await httpResponse.Content.ReadAsStringAsync(); var expectedJson = JsonConvert.SerializeObject(expectedDatabaseImageElement); jsonContent.ShouldBe(expectedJson); }
public async Task UpdateScore_ShouldCallHelper() { //Arrange var expectedScore = 1; var expectedElement = new DatabaseImageElement() { Id = 1, DescriptiveSentence = "t", ImageContentUri = "t", ImageName = "t", PersonFirstName = "t", PersonLastName = "t", Score = 0 }; var fakeDatabaseImageElementHelper = A.Fake <IDatabaseImageElementHelper>(); A.CallTo(() => fakeDatabaseImageElementHelper.UpdateScore(expectedElement.Id)).Returns(expectedElement); var databaseImageElementController = new DatabaseImageElementController() { DatabaseImageElementHelper = fakeDatabaseImageElementHelper, Request = new HttpRequestMessage() }; //Act var result = databaseImageElementController.UpdateScore(expectedElement.Id); //Assert A.CallTo(() => fakeDatabaseImageElementHelper.UpdateScore(expectedElement.Id)) .MustHaveHappenedOnceExactly(); var httpResponse = await result.ExecuteAsync(new CancellationToken()); var jsonContent = await httpResponse.Content.ReadAsStringAsync(); var expectedJson = JsonConvert.SerializeObject(expectedElement); jsonContent.ShouldBe(expectedJson); }
/// <inheritdoc/> public DatabaseImageElement InsertNewImageElement(int id, string imageName, string imageContentUri, string personFirstName, string personLastName, string descriptiveSentence, int score) { if (!Uri.IsWellFormedUriString(imageContentUri, UriKind.Absolute)) { throw new ManagerException(StorageErrorMessages.InvalidImageUriError); } if (!imageName.IsFileNameValid()) { throw new ManagerException(StorageErrorMessages.InvalidFileNameError); } //Creates an element to insert into DB var imageElement = new DatabaseImageElement() { Id = id, ImageName = imageName, ImageContentUri = imageContentUri, PersonFirstName = personFirstName, PersonLastName = personLastName, DescriptiveSentence = descriptiveSentence, Score = score }; //Inserts element into DatabaseImageElements using (var context = _databaseContextGeneration.BuildDatabaseContext()) { if (context.DatabaseImageElements.Any(s => s.ImageContentUri == imageElement.ImageContentUri)) { return(null); } context.DatabaseImageElements.Add(imageElement); context.SaveChanges(); } return(imageElement); }
public IHttpActionResult Post([FromBody] DatabaseImageElement databaseImageElement) { try { databaseImageElement = DatabaseImageElementHelper.InsertNewImageElement(databaseImageElement.Id, databaseImageElement.ImageName, databaseImageElement.ImageContentUri, databaseImageElement.PersonFirstName, databaseImageElement.PersonLastName, databaseImageElement.DescriptiveSentence, databaseImageElement.Score); return(Json(databaseImageElement)); } catch (ManagerException wrongUriException) when(wrongUriException.ErrorCode == StorageErrorMessages.InvalidImageUriError) { return(BadRequest(StorageErrorMessages.InvalidImageUriError)); } catch (ManagerException wrongFilenameException) when(wrongFilenameException.ErrorCode == StorageErrorMessages.InvalidFileNameError) { return(BadRequest(StorageErrorMessages.InvalidFileNameError)); } }