public void Delete_AnonymousUser_Throw() { PortalRequest.Setup(p => p.IsAnonymousUser).Returns(true); var extension = Make_SelectionExtension(); extension.Delete(null); }
public void Set_GivenAnonymousUserAndSlideIsClosed_Throw() { PortalRequest.Setup(p => p.IsAnonymousUser).Returns(true); var extension = Make_AnswerExtension(); var question = new Question("TestQuestion") { Id = "00000000-0000-0000-0000-000000000001:0" }; Context.QuestionnaireGateway.Set(new Questionnaire { Id = "00000000-0000-0000-0000-000000000001", Name = "Test", LockQuestion = true, Slides = new List <Slide> { new Slide { IsCompleted = true, Questions = new List <Question> { question } } } }); extension.Set("00000000-0000-0000-0000-000000000001:0", null); }
public void GetResponseStream_GivenAStream_ReturnsAStreamAsAttachment() { var request = new PortalRequest(); request.Parameters.Add("format", "attachment"); using (var response = new PortalResponse(request)) { request.Stopwatch.Reset(); var memoryStream = new MemoryStream(); var writer = new StreamWriter(memoryStream); var attachment = new Attachment { FileName = "somefile.name", Stream = memoryStream, ContentType = "some content/type", AsAttachment = true }; writer.Write("OK!"); writer.Flush(); response.WriteToOutput(attachment); var stream = new StreamReader(response.GetResponseStream()); Assert.That(stream.ReadToEnd(), Is.EqualTo("OK!")); } }
public void LastTokenOfEmptySegment() { PortalRequest request = new PortalRequest(); request.AddToken("category", "/"); Assert.AreEqual("", request.GetLastTokenSegmentValue("category")); }
public void LastTokenOfSingleSegment() { PortalRequest request = new PortalRequest(); request.AddToken("category", "/Products/"); request.AddToken("category2", "/Products"); Assert.AreEqual("Products", request.GetLastTokenSegmentValue("category")); Assert.AreEqual("Products", request.GetLastTokenSegmentValue("category2")); }
public void LastTokenOfMultiSegment() { PortalRequest request = new PortalRequest(); request.AddToken("category", "/Products/WallMounts/Cantilever/"); request.AddToken("category2", "/Products/WallMounts/Cantilever"); Assert.AreEqual("Cantilever", request.GetLastTokenSegmentValue("category")); Assert.AreEqual("Cantilever", request.GetLastTokenSegmentValue("category2")); }
public void GetResponseStream_GivenSimpleIntegerResult_ReturnsXmlContainingScalarResult() { var request = new PortalRequest(); var response = new PortalResponse(request); request.Stopwatch.Reset(); response.WriteToOutput(1234); using (var stream = new StreamReader(response.GetResponseStream())) { Assert.That(stream.ReadToEnd(), Is.EqualTo("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><PortalResult Duration=\"0\"><ModuleResults><ModuleResult Fullname=\"Portal\" Duration=\"0\" Count=\"1\"><Results><Result FullName=\"Chaos.Portal.Core.Data.Model.ScalarResult\"><Value>1234</Value></Result></Results></ModuleResult></ModuleResults></PortalResult>")); } }
public void GetResponseStream_GivenAComplexDto_ReturnsAsXml() { var request = new PortalRequest(); var response = new PortalResponse(request); request.Stopwatch.Reset(); response.WriteToOutput(new Core.Data.Model.Module{ ID = 4321}); using (var stream = new StreamReader(response.GetResponseStream())) { Assert.That(stream.ReadToEnd(), Is.EqualTo("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><PortalResult Duration=\"0\"><ModuleResults><ModuleResult Fullname=\"Portal\" Duration=\"0\" Count=\"1\"><Results><Result FullName=\"Chaos.Portal.Core.Data.Model.Module\"><ID>4321</ID><DateCreated>01-01-0001 00:00:00</DateCreated></Result></Results></ModuleResult></ModuleResults></PortalResult>")); } }
public void ProcessRequest_ActionDoesntExist_ThrowActionMissingException() { var application = Make_PortalApplication(); var extension = new ExtensionMock(application); var module = new Mock<IModule>(); var parameters = new Dictionary<string, string> { { "format", "XML" } }; var request = new PortalRequest((Protocol)Protocol.V6, (string)"test", (string)"missing", parameters, null); module.Setup(m => m.GetExtensionNames(Protocol.V6)).Returns(new[] { "test" }); module.Setup(m => m.GetExtension(Protocol.V6, "test")).Returns(extension); application.AddModule(module.Object); request.Stopwatch.Reset(); application.ProcessRequest(request); }
public void GetResponseStream_GivenAnException_ReturnsAsErrorXml() { var request = new PortalRequest(); var response = new PortalResponse(request); request.Stopwatch.Reset(); response.WriteToOutput(new ArgumentException()); using (var stream = new StreamReader(response.GetResponseStream())) { var readToEnd = stream.ReadToEnd(); Assert.That(readToEnd, Is.EqualTo("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><PortalResult Duration=\"0\"><ModuleResults><ModuleResult Fullname=\"Portal\" Duration=\"0\" Count=\"1\"><Results><Error FullName=\"System.ArgumentException\"><Message>Value does not fall within the expected range.</Message></Error></Results></ModuleResult></ModuleResults></PortalResult>")); } }
public void Get_GivenAnonymousUserAndSlideIsClosed_Throw() { PortalRequest.Setup(p => p.IsAnonymousUser).Returns(true); var extension = Make_QuestionExtension(); var questionnaire = Context.QuestionnaireGateway.Set(new Questionnaire { LockQuestion = true, Slides = new[] { new Slide { IsCompleted = true, Questions = new[] { new Question("TestQuestion") } } } }); extension.Get(questionnaire.Id); }
public void Get_GivenKnownUserAndSlideIsClosed_ReturnFirstSlide() { PortalRequest.Setup(p => p.IsAnonymousUser).Returns(false); var extension = Make_QuestionExtension(); var questionnaire = Context.QuestionnaireGateway.Set(new Questionnaire { Slides = new[] { new Slide { IsCompleted = true, Questions = new[] { new Question("TestQuestion") } } } }); var page = extension.Get(questionnaire.Id); Assert.That(page.Results, Is.Not.Empty); }
public void GetResponseStream_GivenGroupedResultWithIViewData_ReturnsXmlContainingGroupedResult() { var request = new PortalRequest(); var response = new PortalResponse(request){ReturnFormat = ReturnFormat.XML2}; var grouped = new GroupedResult<IResult>(new[] { new ResultGroup<ViewDataResultMock>(2, 0, new[] { new ViewDataResultMock(), new ViewDataResultMock() }) }); request.Stopwatch.Reset(); response.WriteToOutput(grouped); using (var stream = new StreamReader(response.GetResponseStream())) { var readToEnd = stream.ReadToEnd(); Assert.That(readToEnd, Is.EqualTo("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><PortalResponse><Header><Duration>0</Duration></Header><Body><Groups><ResultGroup><Count>2</Count><TotalCount>2</TotalCount><Results><ViewDataResultMock><Fullname>test</Fullname></ViewDataResultMock><ViewDataResultMock><Fullname>test</Fullname></ViewDataResultMock></Results></ResultGroup></Groups></Body><Error /></PortalResponse>")); } }
public void GetTokenValue() { PortalRequest request = new PortalRequest(); request.AddToken("category0", "/Products/WallMounts/Cantilever/"); request.AddToken("category1", "Products/WallMounts/Cantilever/"); request.AddToken("category2", "/Products/"); request.AddToken("category3", "/Products"); request.AddToken("category4", "Products"); request.AddToken("category5", "/"); request.AddToken("category6", null); Assert.AreEqual("Products/WallMounts/Cantilever", request.GetTokenValue("category0")); Assert.AreEqual("Products/WallMounts/Cantilever", request.GetTokenValue("category1")); Assert.AreEqual("Products", request.GetTokenValue("category2")); Assert.AreEqual("Products", request.GetTokenValue("category3")); Assert.AreEqual("Products", request.GetTokenValue("category4")); Assert.AreEqual(null, request.GetTokenValue("category6")); }
public void ProcessRequest_ExtensionThrowsAnException_ReturnResponseWithError() { var application = Make_PortalApplication(); var module = new Mock<IModule>(); var parameters = new Dictionary<string, string> { { "½ormat", "XML" } }; var request = new PortalRequest((Protocol)Protocol.V5, (string)"test", (string)"error", parameters, null); var extension = new ExtensionMock(application); module.Setup(m => m.GetExtensionNames(Protocol.V5)).Returns(new[] { "test" }); module.Setup(m => m.GetExtension(Protocol.V5, "test")).Returns(extension); application.AddModule(module.Object); request.Stopwatch.Reset(); var response = application.ProcessRequest(request); using (var stream = new StreamReader(response.GetResponseStream())) { var readToEnd = stream.ReadToEnd(); Assert.That(readToEnd, Is.EqualTo("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><PortalResult Duration=\"0\"><ModuleResults><ModuleResult Fullname=\"Portal\" Duration=\"0\" Count=\"1\"><Results><Error FullName=\"System.ArgumentException\"><Message>Value does not fall within the expected range.</Message></Error></Results></ModuleResult></ModuleResults></PortalResult>")); } }
public void GetResponseStream_ReturnedObjectWrappedWithModuleName_SetTheModuleNameInTheResponseXml() { var request = new PortalRequest(); var response = new PortalResponse(request); var wrapped = new NamedResult( "Some module name", 1234); request.Stopwatch.Reset(); response.WriteToOutput(wrapped); using (var stream = new StreamReader(response.GetResponseStream())) { Assert.That(stream.ReadToEnd(), Is.EqualTo("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><PortalResult Duration=\"0\"><ModuleResults><ModuleResult Fullname=\"Some module name\" Duration=\"0\" Count=\"1\"><Results><Result FullName=\"Chaos.Portal.Core.Data.Model.ScalarResult\"><Value>1234</Value></Result></Results></ModuleResult></ModuleResults></PortalResult>")); } }