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); }
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]); }
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]); }
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]); }
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]); }
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]); }
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]); }
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"); } }
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); }
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"); } }
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"); } }
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()); } }
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); }
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); }
public void SaveTimeLineTest() { TimeLine timeLine = MockObjects.GetTimeLine(); TimeLineCentre.Save(timeLine); if (StaticHub.ResourceManager.GetResource("TimeLines", timeLine.Name) == null) { throw new Exception("Assert Fails"); } }
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); }
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); }
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"); } }
public void GetTimeLineTest() { TimeLine timeLine = MockObjects.GetTimeLine(); TimeLineCentre.Save(timeLine); TimeLine timeLine2 = TimeLineCentre.Get(timeLine.Name); if (timeLine2 == null) { throw new Exception("Assert Fails"); } }
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); }
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); }
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); }
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); }
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"); } }
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); }
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"); } }
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); }
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]); }
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); }
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); }
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); }
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); }
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]); }
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); }
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); }
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); }
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)); }
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); }
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); }
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); }