public async Task ComponentShouldSetPendingChangesIfUpdatedAtDoesNotMatch()
        {
            //Arrange
            var handler = new FakeMessageHandler();

            handler.Responses.Enqueue(new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.OK, Content = new StringContent(@"{""sys"":{""type"":""Array""},""total"":0,""skip"":0,""limit"":100,""items"":[{""sys"": {""updatedAt"":""2017-10-01""}, ""fields"": {""test"": ""pop""}}]}")
            });
            var httpClient     = new HttpClient(handler);
            var optionsManager = new Mock <IContentfulOptionsManager>();

            optionsManager.SetupGet(c => c.Options).Returns(new ContentfulOptions());
            var component     = new EntryStateViewComponent(httpClient, optionsManager.Object);
            var sysProperties = new SystemProperties();

            sysProperties.UpdatedAt = new DateTime(2017, 11, 03);
            sysProperties.Id        = "123";
            //Act
            var res = await component.InvokeAsync(new[] { sysProperties });

            //Assert
            Assert.IsType <ViewViewComponentResult>(res);
            Assert.True(((res as ViewViewComponentResult).ViewData.Model as EntryStateModel).PendingChanges);
        }
        public async Task ComponentShouldSetDraftIfEntryIsNull()
        {
            //Arrange
            var handler = new FakeMessageHandler();

            handler.Responses.Enqueue(new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.NotFound, Content = new StringContent(@"{""sys"":{""type"":""Array""},""total"":0,""skip"":0,""limit"":100,""items"":[]}")
            });
            var httpClient     = new HttpClient(handler);
            var optionsManager = new Mock <IContentfulOptionsManager>();

            optionsManager.SetupGet(c => c.Options).Returns(new ContentfulOptions());
            var component     = new EntryStateViewComponent(httpClient, optionsManager.Object);
            var sysProperties = new List <SystemProperties> {
                new SystemProperties {
                    Id = "434"
                }
            };
            //Act
            var res = await component.InvokeAsync(sysProperties);

            //Assert
            Assert.IsType <ViewViewComponentResult>(res);
            Assert.True(((res as ViewViewComponentResult).ViewData.Model as EntryStateModel).Draft);
        }