Ejemplo n.º 1
0
        public void Delete_AnonymousUser_Throw()
        {
            PortalRequest.Setup(p => p.IsAnonymousUser).Returns(true);
            var extension = Make_SelectionExtension();

            extension.Delete(null);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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!"));
            }
        }
Ejemplo n.º 4
0
        public void LastTokenOfEmptySegment()
        {
            PortalRequest request = new PortalRequest();

            request.AddToken("category", "/");

            Assert.AreEqual("", request.GetLastTokenSegmentValue("category"));
        }
Ejemplo n.º 5
0
        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"));
        }
Ejemplo n.º 6
0
        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"));
        }
Ejemplo n.º 7
0
        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>"));
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 10
0
        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>"));
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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>"));
            }
        }
Ejemplo n.º 14
0
        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"));
        }
Ejemplo n.º 15
0
        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>"));
            }
        }
Ejemplo n.º 16
0
        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>"));
            }
        }