public async void OnPost_AllFieldsModified_ExpectChangesSavedToRepository() { //Arrange var poem = new PoemBuilder().Default().Build(); poem.PublishedRevision = null; var client = CreateClientAndTestData(poem); var form = await GetInputFormAsync(client, poem.Id); var modifiedPoemDTO = PoemDTO.CreateDTOFromEntity(poem); modifiedPoemDTO.Name = "Updated " + poem.Name; modifiedPoemDTO.Notes = poem.Notes + " and more notes"; modifiedPoemDTO.ConceivedDateLocal = poem.ConceivedDateUTC.ToLocalTime().AddDays(-1); modifiedPoemDTO.PublishedRevisionId = poem.PoemRevisions.FirstOrDefault().Id; var newRevision = new RevisionBuilder(poem).Random().Build(); var newRevisionDTO = RevisionDTO.CreateDTOFromEntity(newRevision); var inputs = CreateFormInputs(modifiedPoemDTO, newRevisionDTO); //Act var response = await PostRequestHelper.PostWithUpdateInputsAsync(client, form, inputs); //Assert var revisionList = new RevisionList(poem.PoemRevisions.Append(newRevision)); AssertEditPoemPage(response, modifiedPoemDTO, revisionList); }
public void OnGet_WithRevision_ExpectCorrectValuesInProperties() { //Arrange var poem = new PoemBuilder().Default().Build(); var poemDTO = PoemDTO.CreateDTOFromEntity(poem); var mockReadService = new Mock <IReadPoemService>(); mockReadService.Setup(r => r.GetPoemById(poemDTO.Id)) .Returns(poemDTO); var revisions = new RevisionBuilder(poem).Default().BuildCollection(size: 2); revisions.First().CreatedDateUTC = DateTime.UtcNow.AddDays(-2); revisions.Last().CreatedDateUTC = DateTime.UtcNow.AddDays(-1); var revisionList = new RevisionList(revisions); mockReadService.Setup(r => r.GetPoemRevisions(poemDTO.Id)) .Returns(revisionList); var mockWriteService = new Mock <IWritePoemService>(); var testModel = new EditPoemModel(mockReadService.Object, mockWriteService.Object); //Act testModel.OnGet(poemDTO.Id); //Assert Assert.Equal(poemDTO, testModel.PoemToEdit); Assert.Equal(revisionList, testModel.PastRevisions); var latestRevision = revisionList.OrderByDescending(r => r.CreatedDateLocal).First(); Assert.Equal(latestRevision, testModel.LatestRevision); }
public void IsEmpty_AllPropertiesNonEmpty_ExpectFalse() { //Arrange var entity = new RevisionBuilder(null).Default().Build(); var revisionDTO = RevisionDTO.CreateDTOFromEntity(entity); //Act var testResult = revisionDTO.IsEmpty(); //Assert Assert.False(testResult); }
public void IsSame_AllPropertiesSame_ExpectTrue() { //Arrange var entity = new RevisionBuilder(null).Default().Build(); var revisionDTO1 = RevisionDTO.CreateDTOFromEntity(entity); var revisionDTO2 = RevisionDTO.CreateDTOFromEntity(entity); //Act var testResult = revisionDTO1.IsSame(revisionDTO2); //Assert Assert.True(testResult); }
public void IsSame_AllPropertiesDifferent_ExpectFalse() { //Arrange var entity1 = new RevisionBuilder(null).Default().Build(); var revisionDTO1 = RevisionDTO.CreateDTOFromEntity(entity1); var entity2 = new RevisionBuilder(null).Random().Build(); var revisionDTO2 = RevisionDTO.CreateDTOFromEntity(entity2); //Act var testResult = revisionDTO1.IsSame(revisionDTO2); //Assert Assert.False(testResult); }
public void IsSame_MixProperties_ExpectFalse() { //Arrange var entity = new RevisionBuilder(null).Default().Build(); var revisionDTO1 = RevisionDTO.CreateDTOFromEntity(entity); entity.Title = "IsSame_MixProperties_ExpectFalse"; var revisionDTO2 = RevisionDTO.CreateDTOFromEntity(entity); //Act var testResult = revisionDTO1.IsSame(revisionDTO2); //Assert Assert.False(testResult); }
public void Constructor_InputSingleItemList_ExpectCorrectCountAndLatest() { //Arrange var size = 1; var entityList = new RevisionBuilder(null).Default().BuildCollection(size); //Act var testResult = new RevisionList(entityList); //Assert var expectResult = RevisionDTO.CreateDTOFromEntity(entityList.Last(), index: size); Assert.Equal(size, testResult.Count); Assert.True(expectResult.IsSame(testResult.Latest)); Assert.Equal(size, testResult.Latest.Index); }
public void CreateDTOFromEntity_ValidInput() { //Arrange var revisionEntity = new RevisionBuilder(null).Default().Build(); //Act var index = 1; var revisionDTO = RevisionDTO.CreateDTOFromEntity(revisionEntity, index); //Assert Assert.NotNull(revisionDTO); Assert.Equal(revisionEntity.Id, revisionDTO.Id); Assert.Equal(revisionEntity.Title, revisionDTO.Title); Assert.Equal(revisionEntity.Body, revisionDTO.Body); Assert.Equal(revisionEntity.CreatedDateUTC.ToLocalTime().ToString("yyyy-MM-dd"), revisionDTO.CreatedDateLocal); Assert.Equal(index, revisionDTO.Index); }
public void ToEntity_NonEmptyProperties() { //Arrange var expectResult = new RevisionBuilder(null).Default().Build(); var revisionnDTO = new RevisionDTO() { Id = expectResult.Id, Title = expectResult.Title, Body = expectResult.Body }; //Act var testResult = revisionnDTO.ToEntity(); //Assert Assert.NotNull(testResult); Assert.Equal(expectResult.Id, testResult.Id); Assert.Equal(expectResult.Title, testResult.Title); Assert.Equal(expectResult.Body, testResult.Body); }
public void MatchingId_ExpectCorrectRevisionReturned() { //Arrange var poem = new PoemBuilder().Default().Build(); var poemRevisions = new RevisionBuilder(poem).Default().BuildCollection(size: 2); poemRevisions.FirstOrDefault().CreatedDateUTC = DateTime.UtcNow.AddDays(-2); poemRevisions.Last().CreatedDateUTC = DateTime.UtcNow.AddDays(-1); var expectResult = poemRevisions.Last(); //Act var spec = new GetLatestRevisionSpec(poem.Id); var testResult = poemRevisions.AsQueryable() .Where(spec.Criteria) .OrderByDescending(spec.OrderByDesc) .FirstOrDefault(); //Assert Assert.Equal(expectResult, testResult); }
public void GetEnumerator_InputSingleItemList_ExpectOneItemInLoop() { //Arrange var size = 1; var entityList = new RevisionBuilder(null).Default().BuildCollection(size); //Act var testResult = new RevisionList(entityList); //Assert var expectResult = RevisionDTO.CreateDTOFromEntity(entityList.Last()); var count = 1; foreach (var item in testResult) { Assert.False(count > size); Assert.True(expectResult.IsSame(item)); Assert.Equal(count, item.Index); count++; } }
public void GetEnumerator_InputMultipleItemsList_ExpectCorrectItemsInLoop() { //Arrange var size = 3; var entityList = new RevisionBuilder(null).Default().BuildCollection(size); //Act var testResult = new RevisionList(entityList); //Assert var expectList = entityList .OrderBy(e => e.CreatedDateUTC) .Select(e => RevisionDTO.CreateDTOFromEntity(e)); var count = 1; foreach (var item in testResult) { Assert.False(count > size); Assert.True(expectList.ElementAt(count - 1).IsSame(item)); Assert.Equal(count, item.Index); count++; } }