Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
        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++;
            }
        }
Esempio n. 12
0
        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++;
            }
        }