public async Task GetDocumentByInvalidIdTest()
        {
            var documentRepositoryMock = new Mock <IDocumentRepository>();

            documentRepositoryMock.Setup(p => p.GetAsync(It.IsAny <string>()))
            .Returns(() => Task.FromResult((DocumentEntity)null));

            var documentContentServiceMock = new Mock <IDocumentContentService>();

            documentContentServiceMock.Setup(p => p.GetCurrentContentAsync(It.IsAny <string>()));

            var documentCollaboratorServiceMock = new Mock <IDocumentCollaboratorService>();

            documentCollaboratorServiceMock.Setup(p => p.FindByDocumentAsync(It.IsAny <string>()));

            var documentService = new DocumentService(
                documentRepositoryMock.Object,
                documentContentServiceMock.Object,
                documentCollaboratorServiceMock.Object,
                MockObjects.GetMapper());

            await Assert.ThrowsAsync <NotFoundException>(async() => await documentService.GetAsync("1"));

            documentRepositoryMock.Verify(p => p.GetAsync(It.IsAny <string>()), Times.Once);
            documentContentServiceMock.Verify(p => p.GetCurrentContentAsync(It.IsAny <string>()), Times.Never);
            documentCollaboratorServiceMock.Verify(p => p.FindByDocumentAsync(It.IsAny <string>()), Times.Never);
        }
        public async Task DeleteDocumentMadeByOtherUserTest()
        {
            var userId      = "userId";
            var otherUserId = "otherUserId";
            var documentId  = "docmentId";

            var documentRepositoryMock = new Mock <IDocumentRepository>();

            documentRepositoryMock.Setup(p => p.GetAsync(It.IsAny <string>()))
            .Returns(() => Task.FromResult(new DocumentEntity {
                UserId = otherUserId
            }));

            var documentContentServiceMock      = new Mock <IDocumentContentService>();
            var documentCollaboratorServiceMock = new Mock <IDocumentCollaboratorService>();

            var documentService = new DocumentService(
                documentRepositoryMock.Object,
                documentContentServiceMock.Object,
                documentCollaboratorServiceMock.Object,
                MockObjects.GetMapper());

            await Assert.ThrowsAsync <ForiddenException>(async() => await documentService.DeleteAsync(userId, documentId));

            documentRepositoryMock.Verify(p => p.GetAsync(It.IsAny <string>()), Times.Once);
            documentRepositoryMock.Verify(p => p.RemoveAsync(It.IsAny <DocumentEntity>()), Times.Never);
        }
Esempio n. 3
0
        public void FormatFilter_ContextContainsFormat_DefaultFormat(
            string format,
            FormatSource place,
            string contentType)
        {
            // Arrange
            var mediaType   = MediaTypeHeaderValue.Parse("application/json");
            var mockObjects = new MockObjects(format, place);

            var resultExecutingContext   = mockObjects.CreateResultExecutingContext();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);

            // Act
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var objectResult = Assert.IsType <ObjectResult>(resultExecutingContext.Result);

            Assert.Equal(1, objectResult.ContentTypes.Count);
            AssertMediaTypesEqual(mediaType, objectResult.ContentTypes[0]);
        }
Esempio n. 4
0
        public void FormatFilter_ContextContainsFormat_Custom(
            string format,
            FormatSource place,
            string contentType)
        {
            // Arrange
            var mediaType = MediaTypeHeaderValue.Parse(contentType);

            var mockObjects              = new MockObjects(format, place);
            var resultExecutingContext   = mockObjects.CreateResultExecutingContext();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilter[] { });

            mockObjects.MockFormatterMappingOptions.FormatterMappings.SetMediaTypeMappingForFormat(
                format,
                MediaTypeHeaderValue.Parse(contentType));

            var filter = new FormatFilter(mockObjects.IOptions, mockObjects.ScopedInstance);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var objectResult = Assert.IsType <ObjectResult>(resultExecutingContext.Result);

            Assert.Equal(1, objectResult.ContentTypes.Count);
            AssertMediaTypesEqual(mediaType, objectResult.ContentTypes[0]);
        }
Esempio n. 5
0
        public void FormatFilter_ContextContainsFormat_Custom(
            string format,
            FormatSource place,
            string contentType)
        {
            // Arrange
            var mediaType = new StringSegment(contentType);

            var mockObjects              = new MockObjects(format, place);
            var resultExecutingContext   = mockObjects.CreateResultExecutingContext();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });

            mockObjects.Options.FormatterMappings.SetMediaTypeMappingForFormat(
                format,
                MediaTypeHeaderValue.Parse(contentType));

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var objectResult = Assert.IsType <ObjectResult>(resultExecutingContext.Result);

            Assert.Single(objectResult.ContentTypes);
            MediaTypeAssert.Equal(mediaType, objectResult.ContentTypes[0]);
        }
Esempio n. 6
0
        public void FormatFilter_ContextContainsFormat_DefaultFormat(
            string format,
            FormatSource place,
            string contentType)
        {
            // Arrange
            var mediaType = MediaTypeHeaderValue.Parse("application/json");
            var mockObjects = new MockObjects(format, place);

            var resultExecutingContext = mockObjects.CreateResultExecutingContext();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);

            // Act
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var objectResult = Assert.IsType<ObjectResult>(resultExecutingContext.Result);
            Assert.Equal(1, objectResult.ContentTypes.Count);
            AssertMediaTypesEqual(mediaType, objectResult.ContentTypes[0]);
        }
Esempio n. 7
0
        public void FormatFilter_ContextContainsFormat_DefaultFormat(
            string format,
            FormatSource place,
            string contentType)
        {
            // Arrange
            var mediaType   = new StringSegment("application/json");
            var mockObjects = new MockObjects(format, place);

            var resultExecutingContext   = mockObjects.CreateResultExecutingContext();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);

            // Act
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var objectResult = Assert.IsType <ObjectResult>(resultExecutingContext.Result);

            Assert.Single(objectResult.ContentTypes);
            MediaTypeAssert.Equal(mediaType, objectResult.ContentTypes[0]);
        }
Esempio n. 8
0
        public void FormatFilter_ExplicitContentType_SetOnObjectResult_TakesPrecedence()
        {
            // Arrange
            var mediaType   = new StringSegment("application/foo");
            var mockObjects = new MockObjects("json", FormatSource.QueryData);
            var httpContext = new Mock <HttpContext>();

            httpContext.Setup(c => c.Response).Returns(new Mock <HttpResponse>().Object);
            httpContext.Setup(c => c.Request.Query["format"]).Returns("json");
            var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ActionDescriptor());
            var objectResult  = new ObjectResult("Hello!");

            objectResult.ContentTypes.Add(new MediaTypeHeaderValue("application/foo"));
            var resultExecutingContext = new ResultExecutingContext(
                actionContext,
                new IFilterMetadata[] { },
                objectResult,
                controller: new object());

            var resourceExecutingContext = new ResourceExecutingContext(
                actionContext,
                new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var result = Assert.IsType <ObjectResult>(resultExecutingContext.Result);

            Assert.Equal(1, result.ContentTypes.Count);
            MediaTypeAssert.Equal(mediaType, result.ContentTypes[0]);
        }
Esempio n. 9
0
        public void MoveTimeForPanelsElement()
        {
            string graphicElement = "asddsa123";

            TimeLine tl      = MockObjects.GetTimeLine2();
            var      element = tl.AnimationElements.FirstOrDefault();

            element.GraphicName = graphicElement;
            //tl.AnimationElements
            PanelHub.InitializeDefaultPanels(tl);

            var cellBefore           = PanelHub.GetPanelCellBasedOnReferenceElement(element);
            var panelCellGraphicName = cellBefore.GraphicName;

            PanelHub.TimeIdentyficator.MovePrecentage(.8f);
            var time = PanelHub.TimeIdentyficator.GetTime();

            PanelHub.MoveTimeForPanelsElement(panelCellGraphicName, .8f);

            var cellAfter = PanelHub.GetPanelCellBasedOnReferenceElement(element);
            var elem      = cellAfter.ReferenceElement as AnimationSingleElement;

            if (elem.Route.AnimationStartTime != time)
            {
                throw new NesuException("AnimationTime does not equal to time");
            }
        }
Esempio n. 10
0
        public void FormatFilter_ExplicitContentType_SetOnResponse_TakesPrecedence()
        {
            // Arrange
            var mediaType   = MediaTypeHeaderValue.Parse("application/foo");
            var mockObjects = new MockObjects("json", FormatSource.QueryData);
            var response    = new Mock <HttpResponse>();

            response.Setup(r => r.ContentType).Returns("application/foo");
            var httpContext = new Mock <HttpContext>();

            httpContext.Setup(c => c.Response).Returns(response.Object);
            httpContext.Setup(c => c.Request.Query["format"]).Returns("json");
            var actionContext          = new ActionContext(httpContext.Object, new RouteData(), new ActionDescriptor());
            var resultExecutingContext = new ResultExecutingContext(
                actionContext,
                new IFilterMetadata[] { },
                new ObjectResult("Hello!"),
                controller: new object());

            var resourceExecutingContext = new ResourceExecutingContext(
                actionContext,
                new IFilterMetadata[] { },
                new List <IValueProviderFactory>());

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var result = Assert.IsType <ObjectResult>(resultExecutingContext.Result);

            Assert.Empty(result.ContentTypes);
        }
Esempio n. 11
0
        public void SelectPanel_RemovePanels()
        {
            var timeLine = MockObjects.GetTimeLine2();

            PanelHub.InitializeDefaultPanels(timeLine);

            var panelCountBefore = PanelHub.Panels.Values.Count();

            var panel = PanelHub.Panels[TLEPanelNames.ANIMATION_ELEMENT_PREFIX + "0"];
            var cell  = panel.PanelCells.FirstOrDefault();

            PanelHub.SelectPanelCell(cell);

            var panelCountAfter = PanelHub.Panels.Values.Count();

            if (panelCountBefore == panelCountAfter)
            {
                throw new NesuException("Panel count didn't change");
            }

            PanelHub.RemovePanels(TLEPanelNames.ANIMATION_ELEMENT_PREFIX + "0");

            var panelCountAfter2 = PanelHub.Panels.Values.Count();

            if (panelCountBefore != panelCountAfter2)
            {
                throw new NesuException("Removal unsuccessful");
            }
        }
Esempio n. 12
0
        public void SelectPanelAndPanelElement_Beat()
        {
            var timeLine = MockObjects.GetTimeLine2();

            PanelHub.InitializeDefaultPanels(timeLine);

            var panelCountBefore = PanelHub.Panels.Values.Count();

            var panel = PanelHub.Panels[TLEPanelNames.BEAT];

            panel.PanelCells.Add(new DogeBeats.Modules.TimeLines.TLEPanelCell()
            {
                ReferenceElement = new Beat()
                {
                    Timestamp = new TimeSpan(0, 0, 20)
                }
            });
            var cell = panel.PanelCells.FirstOrDefault();

            PanelHub.SelectPanelCell(cell);

            var panelCountAfter = PanelHub.Panels.Values.Count();

            if (panelCountBefore != panelCountAfter)
            {
                throw new NesuException("Panel count did change");
            }
        }
Esempio n. 13
0
        public void UpdateAllPanelTimeScope_1()
        {
            var timeLine = MockObjects.GetTimeLine2();

            PanelHub.InitializeDefaultPanels(timeLine);
            var starttime = new TimeSpan(0, 2, 0);

            PanelHub.PanelOffsetTime = starttime;
            PanelHub.PanelWidthTime  = new TimeSpan(0, 0, 15);

            PanelHub.UpdateTimeScope();

            var time = PanelHub.TimeIdentyficator.StartTime;

            if (time != starttime)
            {
                throw new NesuException("Start time does not match. It Is " + time.ToString());
            }

            var panel = PanelHub.Panels.Values.FirstOrDefault();

            if (panel.StartTime != starttime)
            {
                throw new NesuException("Panel start time does not match. It Is " + panel.StartTime.ToString());
            }
        }
Esempio n. 14
0
        public async Task AddDocumentTest()
        {
            var documentRepositoryMock = new Mock <IDocumentRepository>();

            documentRepositoryMock.Setup(p => p.AddAsync(It.IsAny <DocumentEntity>()))
            .Returns(() => Task.FromResult(0));

            var documentContentServiceMock      = new Mock <IDocumentContentService>();
            var documentCollaboratorServiceMock = new Mock <IDocumentCollaboratorService>();

            var documentService = new DocumentService(
                documentRepositoryMock.Object,
                documentContentServiceMock.Object,
                documentCollaboratorServiceMock.Object,
                MockObjects.GetMapper());

            const string userId     = "userId";
            var          dateBefore = DateTime.UtcNow;

            var document = await documentService.AddAsync(userId);

            Assert.NotNull(document);
            Assert.Equal(userId, document.UserId);
            Assert.Equal("New Document", document.Name);
            Assert.False(string.IsNullOrEmpty(document.Id));
            Assert.True(dateBefore < document.Created);
            Assert.True(document.Created < DateTime.UtcNow);

            documentRepositoryMock.Verify(p => p.AddAsync(It.IsAny <DocumentEntity>()), Times.Once);
        }
Esempio n. 15
0
        public void GetPanelForPanelCell_GraphicalName()
        {
            string name = "ttrt";

            TimeLine tl = MockObjects.GetTimeLine2();

            //var element = tl.AnimationElements.FirstOrDefault();
            PanelHub.InitializeDefaultPanels(tl);
            var panel = PanelHub.GetPanel(TLEPanelNames.ANIMATION_ELEMENT_PREFIX + "0");
            var cell  = panel.PanelCells.FirstOrDefault();

            cell.GraphicName = name;

            if (PanelHub.Panels.Count != 2)
            {
                throw new NesuException("1. There supposed to be only 2 panels. There is " + PanelHub.Panels.Count);
            }

            PanelHub.SelectPanelCell(name);

            if (PanelHub.Panels.Count != 3)
            {
                throw new NesuException("2. There supposed to be only 3 panels. There is " + PanelHub.Panels.Count);
            }
        }
        public TLEPCEManagementBeatTests()
        {
            editor = new TimeLineEditor();
            var timeLine = MockObjects.GetTimeLine2();

            editor.AttachTimeLineToEditor(timeLine);
            Management = new TLEPCEManagementBeat(editor);
        }
        public async Task ImageSaveReturnTrueWhenHasAllowedExtension()
        {
            var imageService = new ImageService();
            var mockImage    = MockObjects.GetMockFile("test.png").Object;

            var result = await imageService.Save(mockImage, "/test/", "test");

            Assert.True(result);
        }
        public TLEPCEManagementAnimationElementTests()
        {
            editor = new TimeLineEditor();
            var timeLine = MockObjects.GetTimeLine2();

            editor.AttachTimeLineToEditor(timeLine);
            //editor.PanelHub.InitializeDefaultPanels(timeLine);
            Management = new TLEPCEManagementAnimationElement(editor);
        }
Esempio n. 19
0
        public void SaveTimeLineTest()
        {
            TimeLine timeLine = MockObjects.GetTimeLine();

            TimeLineCentre.Save(timeLine);

            if (StaticHub.ResourceManager.GetResource("TimeLines", timeLine.Name) == null)
            {
                throw new Exception("Assert Fails");
            }
        }
Esempio n. 20
0
        public void SetAllOfSerializedObjectsTest()
        {
            var aElem  = MockObjects.GetAnimationElement();
            var aElem2 = MockObjects.GetAnimationElement2();

            var dic = new Dictionary <string, AnimationSingleElement>();

            dic.Add("test AnimationELement1", aElem);
            dic.Add("test AnimationELement2", aElem2);

            manager.SaveAllOfSerializedObjects <AnimationSingleElement>("TestSerialization", dic);
        }
Esempio n. 21
0
        public async Task UpdateDocumentTest()
        {
            const string userId       = "userId";
            const string documentId   = "documentId";
            var          previousName = "Previous name";
            var          newName      = "New name";

            var documentEntity = new DocumentEntity
            {
                Id     = documentId,
                UserId = userId,
                Name   = previousName
            };

            var document = new Document
            {
                Id     = documentId,
                UserId = userId,
                Name   = newName
            };

            DocumentEntity updatedDocument     = null;
            string         requestedDocumentId = null;

            var documentRepositoryMock = new Mock <IDocumentRepository>();

            documentRepositoryMock.Setup(p => p.GetAsync(It.IsAny <string>()))
            .Callback((string id) => { requestedDocumentId = id; })
            .Returns(() => Task.FromResult(documentEntity));

            documentRepositoryMock.Setup(p => p.UpdateAsync(It.IsAny <DocumentEntity>()))
            .Callback((DocumentEntity doc) => { updatedDocument = doc; })
            .Returns(() => Task.FromResult(0));

            var documentContentServiceMock      = new Mock <IDocumentContentService>();
            var documentCollaboratorServiceMock = new Mock <IDocumentCollaboratorService>();

            var documentService = new DocumentService(
                documentRepositoryMock.Object,
                documentContentServiceMock.Object,
                documentCollaboratorServiceMock.Object,
                MockObjects.GetMapper());

            await documentService.UpdateAsync(document);

            Assert.Equal(documentId, requestedDocumentId);
            Assert.NotNull(updatedDocument);
            Assert.Equal(newName, updatedDocument.Name);

            documentRepositoryMock.Verify(p => p.GetAsync(It.IsAny <string>()), Times.Once);
            documentRepositoryMock.Verify(p => p.UpdateAsync(It.IsAny <DocumentEntity>()), Times.Once);
        }
Esempio n. 22
0
        public void GetAllAnimationGroupElementsTest()//Fix this test
        {
            TimeLine timeLine = MockObjects.GetTimeLine();

            TimeLineCentre.Save(timeLine);

            var groups = TimeLineCentre.GetAllAnimationGroupElements();

            if (groups == null || groups.Count == 0)
            {
                throw new Exception("Assert Fails");
            }
        }
Esempio n. 23
0
        public void GetTimeLineTest()
        {
            TimeLine timeLine = MockObjects.GetTimeLine();

            TimeLineCentre.Save(timeLine);

            TimeLine timeLine2 = TimeLineCentre.Get(timeLine.Name);

            if (timeLine2 == null)
            {
                throw new Exception("Assert Fails");
            }
        }
Esempio n. 24
0
        public void GetResourceNameWithExtensionTest()
        {
            var aElem = MockObjects.GetAnimationElement();

            manager.SaveSerializedObject <AnimationSingleElement>(aElem, "TestSerialization", aElem.Name);

            var filenameWithExtension = manager.GetResourceNameWithExtension("TestSerialization", aElem.Name);

            if (filenameWithExtension != aElem.Name + ".json")
            {
                throw new Exception("Assert Fails");
            }
        }
        public TLEPCEManagementAnimationRouteTests()
        {
            editor = new TimeLineEditor();
            var timeLine = MockObjects.GetTimeLine2();

            editor.AttachTimeLineToEditor(timeLine);
            Management = new TLEPCEManagementAnimationRoute(editor);

            var animationElementPanel = Management.ParentTLE.PanelHub.GetPanel(TLEPanelNames.ANIMATION_ELEMENT_PREFIX + "0");
            var animationElementCell  = animationElementPanel.PanelCells.FirstOrDefault();

            Management.ParentTLE.PanelHub.SelectPanelCell(animationElementCell);
        }
Esempio n. 26
0
        public void FormatFilter_ContextDoesntContainFormat()
        {
            // Arrange
            var mockObjects = new MockObjects();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilter[] { });

            var filter = new FormatFilter(mockObjects.IOptions, mockObjects.ScopedInstance);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 27
0
        public void FormatFilter_IsActive(
            string format,
            FormatSource place,
            bool expected)
        {
            // Arrange
            var mockObjects            = new MockObjects(format, place);
            var resultExecutingContext = mockObjects.CreateResultExecutingContext();
            var filterAttribute        = new FormatFilterAttribute();
            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act and Assert
            Assert.Equal(expected, filter.IsActive);
        }
Esempio n. 28
0
        public void FormatFilter_ContextDoesntContainFormat()
        {
            // Arrange
            var mockObjects = new MockObjects();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 29
0
        public void SerializeXMLTest()
        {
            fileAssistant = new FileAssistant();
            fileAssistant.SerializationType = "XML";
            var aElem = MockObjects.GetAnimationElement();

            byte[] bytes = fileAssistant.Serialize(aElem);
            string xml   = new string(Encoding.Unicode.GetChars(bytes));

            if (bytes == null || bytes.Length == 0 && XDocument.Parse(xml) == null)
            {
                throw new Exception("Assert Fails");
            }
        }
Esempio n. 30
0
        public void FormatFilter_ContextContainsFormat_Invalid(
            string format,
            FormatSource place)
        {
            // Arrange
            var mockObjects = new MockObjects(format, place);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });
            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 31
0
        public void GetPanelForPanelCell()
        {
            TimeLine tl = MockObjects.GetTimeLine2();

            PanelHub.InitializeDefaultPanels(tl);
            var panel = PanelHub.GetPanel(TLEPanelNames.ANIMATION_ELEMENT_PREFIX + "0");
            var cell  = panel.PanelCells.FirstOrDefault();

            var receivedPanel = PanelHub.GetPanelForPanelCell(cell);

            if (receivedPanel != panel)
            {
                throw new NesuException("Panels does not match");
            }
        }
Esempio n. 32
0
        public void FormatFilter_ContextContainsFormat_ContainsProducesFilter_Matching(
            string format,
            FormatSource place,
            string contentType)
        {
            // Arrange
            var produces = new ProducesAttribute(contentType, new string[] { "application/foo", "text/bar" });
            var mockObjects = new MockObjects(format, place);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { produces });

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 33
0
        public void FormatFilter_ContextContainsFormat_InRouteAndQueryData()
        {
            // If the format is present in both route and query data, the one in route data wins

            // Arrange
            var mediaType = MediaTypeHeaderValue.Parse("application/json");
            var mockObjects = new MockObjects("json", FormatSource.RouteData);
            var httpContext = new Mock<HttpContext>();
            httpContext.Setup(c => c.Response).Returns(new Mock<HttpResponse>().Object);

            // Query contains xml
            httpContext.Setup(c => c.Request.Query.ContainsKey("format")).Returns(true);
            httpContext.Setup(c => c.Request.Query["format"]).Returns("xml");

            // Routedata contains json
            var data = new RouteData();
            data.Values.Add("format", "json");

            var ac = new ActionContext(httpContext.Object, data, new ActionDescriptor());

            var resultExecutingContext = new ResultExecutingContext(
                ac,
                new IFilterMetadata[] { },
                new ObjectResult("Hello!"),
                controller: new object());

            var resourceExecutingContext = new ResourceExecutingContext(
                ac,
                new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var objectResult = Assert.IsType<ObjectResult>(resultExecutingContext.Result);
            Assert.Equal(1, objectResult.ContentTypes.Count);
            AssertMediaTypesEqual(mediaType, objectResult.ContentTypes[0]);
        }
Esempio n. 34
0
        public void FormatFilter_ContextContainsFormat_ContainsProducesFilter_Conflicting(
            string format,
            FormatSource place)
        {
            // Arrange
            var produces = new ProducesAttribute("application/xml", new string[] { "application/foo", "text/bar" });
            var mockObjects = new MockObjects(format, place);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { produces });

            mockObjects.Options.FormatterMappings.SetMediaTypeMappingForFormat(
                "xml",
                MediaTypeHeaderValue.Parse("application/xml"));

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            var result = Assert.IsType<NotFoundResult>(resourceExecutingContext.Result);
        }
Esempio n. 35
0
        public void FormatFilter_ContextDoesntContainFormat()
        {
            // Arrange
            var mockObjects = new MockObjects();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 36
0
        public void FormatFilter_ContextDoesntContainFormat()
        {
            // Arrange
            var mockObjects = new MockObjects();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilter[] { });

            var filter = new FormatFilter(mockObjects.IOptions, mockObjects.ScopedInstance);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 37
0
        public void FormatFilter_ExplicitContentType_SetOnResponse_TakesPrecedence()
        {
            // Arrange
            var mediaType = MediaTypeHeaderValue.Parse("application/foo");
            var mockObjects = new MockObjects("json", FormatSource.QueryData);
            var response = new Mock<HttpResponse>();
            response.Setup(r => r.ContentType).Returns("application/foo");
            var httpContext = new Mock<HttpContext>();
            httpContext.Setup(c => c.Response).Returns(response.Object);
            httpContext.Setup(c => c.Request.Query["format"]).Returns("json");
            var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ActionDescriptor());
            var resultExecutingContext = new ResultExecutingContext(
                actionContext,
                new IFilterMetadata[] { },
                new ObjectResult("Hello!"),
                controller: new object());

            var resourceExecutingContext = new ResourceExecutingContext(
                actionContext,
                new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var result = Assert.IsType<ObjectResult>(resultExecutingContext.Result);
            Assert.Equal(0, result.ContentTypes.Count);
        }
Esempio n. 38
0
        public void FormatFilter_ContextContainsFormat_Custom(
            string format,
            FormatSource place,
            string contentType)
        {
            // Arrange  
            var mediaType = MediaTypeHeaderValue.Parse(contentType);

            var mockObjects = new MockObjects(format, place);
            var resultExecutingContext = mockObjects.CreateResultExecutingContext();
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilter[] { });

            mockObjects.MockFormatterMappingOptions.FormatterMappings.SetMediaTypeMappingForFormat(
                format,
                MediaTypeHeaderValue.Parse(contentType));

            var filter = new FormatFilter(mockObjects.IOptions, mockObjects.ScopedInstance);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);
            filter.OnResultExecuting(resultExecutingContext);

            // Assert
            var objectResult = Assert.IsType<ObjectResult>(resultExecutingContext.Result);
            Assert.Equal(1, objectResult.ContentTypes.Count);
            AssertMediaTypesEqual(mediaType, objectResult.ContentTypes[0]);
        }
Esempio n. 39
0
        public void FormatFilter_IsActive(
            string format,
            FormatSource place,
            bool expected)
        {
            // Arrange
            var mockObjects = new MockObjects(format, place);
            var resultExecutingContext = mockObjects.CreateResultExecutingContext();
            var filterAttribute = new FormatFilterAttribute();
            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act and Assert
            Assert.Equal(expected, filter.IsActive);
        }
Esempio n. 40
0
        public void FormatFilter_ContextContainsFormat_Invalid(
            string format,
            FormatSource place)
        {
            // Arrange
            var mockObjects = new MockObjects(format, place);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });
            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 41
0
        public void FormatFilter_LessSpecificThan_Produces()
        {
            // Arrange
            var produces = new ProducesAttribute("application/xml;version=1", new string[] { });
            var mockObjects = new MockObjects("xml", FormatSource.RouteData);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilter[] { produces });

            mockObjects.MockFormatterMappingOptions.FormatterMappings.SetMediaTypeMappingForFormat(
                "xml",
                MediaTypeHeaderValue.Parse("application/xml"));

            var filter = new FormatFilter(mockObjects.IOptions, mockObjects.ScopedInstance);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }
Esempio n. 42
0
        public void FormatFilter_GetFormat(
            string input,
            FormatSource place,
            string expected)
        {
            // Arrange
            var mockObjects = new MockObjects(input, place);
            var context = mockObjects.CreateResultExecutingContext();
            var filterAttribute = new FormatFilterAttribute();
            var filter = new FormatFilter(mockObjects.OptionsManager);

            // Act
            var format = filter.GetFormat(context);

            // Assert
            Assert.Equal(expected, filter.GetFormat(context));
        }
Esempio n. 43
0
        public void FormatFilter_ContextContainsNonExistingFormat(
            string format,
            FormatSource place)
        {
            // Arrange
            var mockObjects = new MockObjects(format, place);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { });

            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            var actionResult = resourceExecutingContext.Result;
            Assert.IsType<HttpNotFoundResult>(actionResult);
        }
Esempio n. 44
0
        public void FormatFilter_MoreSpecificThan_Produces()
        {
            // Arrange
            var produces = new ProducesAttribute("application/xml", new string[] { });
            var mockObjects = new MockObjects("xml", FormatSource.RouteData);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilterMetadata[] { produces });

            mockObjects.Options.FormatterMappings.SetMediaTypeMappingForFormat(
                "xml",
                MediaTypeHeaderValue.Parse("application/xml;version=1"));

            var filter = new FormatFilter(mockObjects.OptionsManager, mockObjects.ActionContextAccessor);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert            
            var actionResult = resourceExecutingContext.Result;
            Assert.IsType<HttpNotFoundResult>(actionResult);
        }
Esempio n. 45
0
        public void FormatFilter_ContextContainsFormat_Invalid(
            string format,
            FormatSource place)
        {
            // Arrange
            var mockObjects = new MockObjects(format, place);
            var resourceExecutingContext = mockObjects.CreateResourceExecutingContext(new IFilter[] { });
            var filter = new FormatFilter(mockObjects.IOptions, mockObjects.ScopedInstance);

            // Act
            filter.OnResourceExecuting(resourceExecutingContext);

            // Assert
            Assert.Null(resourceExecutingContext.Result);
        }