public async void CanPartialUpdateTopicDescription() { _dataAccessMock.Setup(dal => dal.Update <DataEntity.Topic>( It.IsAny <string>(), It.IsAny <Expression <Func <DataEntity.Topic> > >())) .ReturnsAsync(new DataEntity.Topic()) .Verifiable(); MockTopicCache(new DataEntity.Topic { Id = "5883a3fa50f5fea2822f21cf", Description = "mockedDescription", Notes = "mockNotes" }); var topicRep = new TopicRepository(_dataAccessMock.Object, _topicCacheMock.Object); var topicController = new TopicController.TopicController(new QuizManager.QuizManager(topicRep, null, null), null); var jsonPatchRequest = new JsonPatchDocument <ResponseData.TopicIgnoreUniqId>(); jsonPatchRequest.Replace((q) => q.Description, "mockDescriptionToUpdate"); var result = await topicController.UpdateTopic("mockId", jsonPatchRequest); var objectResult = Assert.IsType <OkObjectResult>(result); objectResult.StatusCode.Should().Be(200, "Should return status code as modified"); var updatedResult = Assert.IsAssignableFrom <ResponseData.Topic>(((ObjectResult)result).Value); updatedResult.Description.Should().Equals("mockDescriptionToUpdate"); updatedResult.Notes.Should().Equals("mockNotes"); updatedResult.Id.Should().Equals("5883a3fa50f5fea2822f21cf"); }
public async void CanUpdateTopicEntity() { // Arrange DataEntity.Topic returnVal = new DataEntity.Topic { Description = "mockUpdateDescription", Notes = "mockUpdateNotes" }; var mockMongoDBCollection = MongoHelper <DataEntity.Topic> .GetMockMongoCollection(); mockMongoDBCollection.Setup(c => c.FindOneAndUpdateAsync <DataEntity.Topic>( It.IsAny <MongoDB.Driver.FilterDefinition <DataEntity.Topic> >(), It.IsAny <MongoDB.Driver.UpdateDefinition <DataEntity.Topic> >(), It.IsAny <FindOneAndUpdateOptions <DataEntity.Topic, DataEntity.Topic> >(), It.IsAny <CancellationToken>())) .ReturnsAsync(returnVal); var mockMongoDatabase = MongoHelper <DataEntity.Topic> .GetMockMongoDBInstance(); mockMongoDatabase.Setup(mdb => mdb.GetCollection <DataEntity.Topic>(It.IsAny <string>(), It.IsAny <MongoCollectionSettings>())).Returns(mockMongoDBCollection.Object); var dataAccess = new QuizDataAccess.QuizDataAccess <DataEntity.Topic>(mockMongoDatabase.Object); var topicRep = new TopicRepository(dataAccess, _topicCacheMock.Object); var topicController = new TopicController.TopicController(new QuizManager.QuizManager(topicRep, null, null), null); var entity = new ResponseData.Topic { Description = "mockDescription", Notes = "mockNotes" }; // Act var result = await topicController.Update("58e5db28e40cc200151a5ba4", new ResponseData.TopicIgnoreUniqId { Description = entity.Description, Notes = entity.Notes }); // Assert var statusCode = Assert.IsType <StatusCodeResult>(result); statusCode.StatusCode.Should().Be(204, "Should return status code as modified"); }
public async void CanPartialUpdateTopicNotes() { // Arrange var expectedResult = new DataEntity.Topic { Id = "5883a3fa50f5fea2822f21cf", Description = "mockedDescription", Notes = "mockNotesDescriptionForUpdate" }; _dataAccessMock.Setup(dal => dal.Update <DataEntity.Topic>( It.IsAny <string>(), It.IsAny <Expression <Func <DataEntity.Topic> > >())) .ReturnsAsync(expectedResult) .Verifiable(); MockTopicCache(new DataEntity.Topic { Id = "5883a3fa50f5fea2822f21cf", Description = "mockedDescription", Notes = "mockNotes" }); var topicRep = new TopicRepository(_dataAccessMock.Object, _topicCacheMock.Object); var topicController = new TopicController.TopicController( new QuizManager.QuizManager(topicRep, null, null), null); var jsonPatchRequest = new JsonPatchDocument <ResponseData.TopicIgnoreUniqId>(); jsonPatchRequest.Replace((q) => q.Notes, expectedResult.Notes); // Act var result = await topicController.UpdateTopic("mockId", jsonPatchRequest); // Assert var updatedResult = Assert.IsAssignableFrom <ResponseData.Topic>(((ObjectResult)(result)).Value); updatedResult.Notes.Should().BeEquivalentTo("mockNotesDescriptionForUpdate"); updatedResult.Description.Should().BeEquivalentTo("mockedDescription"); updatedResult.Id.Should().BeEquivalentTo("5883a3fa50f5fea2822f21cf"); }