public void CanMakeReportAndApplyRequiredFromUserToDateParams()
        {
            rws.ReportParameter p1 = new rws.ReportParameter();
            p1.Name = "ParamWithDefault";
            p1.Type = rws.ParameterTypeEnum.DateTime;
            p1.DefaultValues = new string[] { "01/Jan/2011" };
            p1.Nullable = false;
            rws.ReportParameter p2 = new rws.ReportParameter();
            p2.Name = "ParamWithoutDefault";
            p2.Type = rws.ParameterTypeEnum.DateTime;
            p2.DefaultValues = new string[] { };
            p2.Nullable = false;
            rws.ReportParameter[] paramArray = new rws.ReportParameter[] { p1, p2 };

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(2, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamWithDefault");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(false, p1check.RequiredFromUser, "RequiredFromUser expected false");
            var p2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamWithoutDefault");
            Assert.IsNotNull(p2check);
            Assert.AreEqual(true, p2check.RequiredFromUser, "RequiredFromUser expected true");
        }
Esempio n. 2
0
        public CrcReportDefinition GetReportDefn(string reportPath, string username)
        {
            // first, use the username to get description
            var reportCat = this.GetReportCatalogItem(reportPath, username);

            ReportingService2005Soap   rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient();
            GetReportParametersRequest req      = new GetReportParametersRequest()
            {
                Report       = reportPath,
                ForRendering = true
            };
            var resp = rService.GetReportParameters(req);

            var factory = new CrcReportDefinitionFactory();

            return(factory.Create(reportPath, reportCat, resp.Parameters, m_extraConfiguration));
        }
Esempio n. 3
0
        public CrcReportDefinition GetReportDefn(string reportPath, string username)
        {
            // first, use the username to get description
            var reportCat = this.GetReportCatalogItem(reportPath, username);

            ReportingService2005Soap rService = m_ssrsSoapClientFactory.MakeSsrsSoapClient();
            GetReportParametersRequest req = new GetReportParametersRequest()
            {
                Report = reportPath,
                ForRendering = true
            };
            var resp = rService.GetReportParameters(req);

            var factory = new CrcReportDefinitionFactory();
            return factory.Create(reportPath, reportCat, resp.Parameters, m_extraConfiguration);
        }
        public void CanMakeReportAndApplyRequiredFromUserToMultipicks()
        {
            rws.ReportParameter p1 = new rws.ReportParameter();
            p1.Name = "ParamWithDefault";
            p1.ValidValues = new rws.ValidValue[]{ new rws.ValidValue(){Label = "--All--", Value = "%%"},
                                    new rws.ValidValue(){Label = "Label1", Value = "Value1"},
                                    new rws.ValidValue(){Label = "Label2", Value = "Value2"}};
            p1.DefaultValues = new string[] {"%%"};
            p1.Nullable = false;
            rws.ReportParameter p2 = new rws.ReportParameter();
            p2.Name = "ParamWithoutDefault";
            p2.ValidValues = new rws.ValidValue[]{
                                    new rws.ValidValue(){Label = "Label3", Value = "Value3"},
                                    new rws.ValidValue(){Label = "Label4", Value = "Value4"}};
            p2.DefaultValues = new string[] { };
            p2.Nullable = false;
            rws.ReportParameter[] paramArray = new rws.ReportParameter[] { p1, p2 };

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(2, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamWithDefault");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(false, p1check.RequiredFromUser, "RequiredFromUser expected false");
            var p2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamWithoutDefault");
            Assert.IsNotNull(p2check);
            Assert.AreEqual(true, p2check.RequiredFromUser, "RequiredFromUser expected true");
        }
        public void CanMakeSimpleReportWithNullDefaults()
        {
            var mf = new TestDoubles.MockSsrsWebServiceFactory();
            var paramArray = mf.MakeSimpleTestParameters();
            paramArray[0].DefaultValues = null;

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(2, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(2, p1check.ValidValues.Count());
            var p2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamTwo");
            Assert.IsNotNull(p2check);
            Assert.AreEqual(2, p2check.ValidValues.Count());
        }
        public void CanMakeSimpleReportWithCatalogItem()
        {
            var mf = new TestDoubles.MockSsrsWebServiceFactory();
            var paramArray = mf.MakeSimpleTestParameters();

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            rws.CatalogItem catItem = new rws.CatalogItem()
            {
                Path = "TestReport",
                Name = "TestReportName",
                Description = "TestReportDescription"
            };

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", catItem, paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual("TestReportName", repDefn.DisplayName);
            Assert.AreEqual("TestReportDescription", repDefn.Description);
            Assert.AreEqual(2, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(2, p1check.ValidValues.Count());
            var p2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamTwo");
            Assert.IsNotNull(p2check);
            Assert.AreEqual(2, p2check.ValidValues.Count());
        }
        public void CanMakeSimpleReportWithDefaultDate()
        {
            // test to catch default date formatting bug

            var mf = new TestDoubles.MockSsrsWebServiceFactory();
            var paramArray = mf.MakeDateTestParameters();
            // set a default date in the format that comes out of ssrs
            paramArray[0].DefaultValues = new string[] { "2/1/2010 12:00:00 AM"};

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(2, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne");
            Assert.IsNotNull(p1check);
            Assert.AreEqual("2010-02-01", p1check.ParameterChoice.SingleValue);
            var p2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamTwo");
            Assert.IsNotNull(p2check);
            Assert.IsNull(p2check.ParameterChoice.SingleValue);
        }
        public void CanMakeReportWithHintFromExtraConfig()
        {
            var mf = new TestDoubles.MockSsrsWebServiceFactory();
            var paramArray = mf.MakeSimpleTestParameters();

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();
            var repConfig = new CrcReportConfig();
            repConfig.Path = "TestReport";
            repConfig.ReportHint = "This is a report hint";
            configMock.Expect(m => m.GetReportConfig(null)).IgnoreArguments().Return(repConfig);

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual("This is a report hint", repDefn.ReportHint);
        }
        public void CanMakeReportWithNoReportConfigButIncludeDefaultEmptyEquivalents()
        {
            rws.ReportParameter p1 = new rws.ReportParameter();
            p1.Name = "ParamOne";
            p1.ValidValues = new rws.ValidValue[]{ new rws.ValidValue(){Label = "--All--", Value = "%%"},
                                    new rws.ValidValue(){Label = "Label1", Value = "Value1"},
                                    new rws.ValidValue(){Label = "Label2", Value = "Value2"}};
            p1.DefaultValues = new string[] { };
            rws.ReportParameter[] paramArray = new rws.ReportParameter[] { p1};

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();
            configMock.Expect(m => m.DefaultEmptyEquivalentValues).Return(new List<string>() { "", "%%" });
            configMock.Expect(m => m.GetReportConfig(null)).IgnoreArguments().Return(null);

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(1, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(3, p1check.ValidValues.Count());
            Assert.IsTrue(p1check.EmptyEquivalentValues.Count() > 0);
        }
        public void CanMakeReportWithExtraConfigDependants()
        {
            var mf = new TestDoubles.MockSsrsWebServiceFactory();
            var paramArray = mf.MakeDependantTestParameters();

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();
            var repConfig = new CrcReportConfig();
            repConfig.Path = "TestReport";
            repConfig.CrcParamConfigs = new List<CrcReportConfig.CrcParamConfig>();
            repConfig.CrcParamConfigs.Add(new CrcReportConfig.CrcParamConfig()
            {
                ParamName = "ParamOne",
                DependantParams = new List<string>() { "ParamThree" }
            });
            configMock.Expect(m => m.GetReportConfig(null)).IgnoreArguments().Return(repConfig);
            configMock.Expect(m => m.DefaultEmptyEquivalentValues).Return(new List<string>());

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(3, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(1, p1check.DependantParameterNames.Count());
            Assert.IsTrue(p1check.DependantParameterNames.Contains("ParamThree"));

            var p2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamTwo");
            Assert.IsNotNull(p2check);
            Assert.AreEqual(0, p2check.DependantParameterNames.Count());

            var p3check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamThree");
            Assert.IsNotNull(p3check);
            Assert.AreEqual(0, p3check.DependantParameterNames.Count());
        }
        public void CanMakeReportWithExtraConfigSpecificEmptyEquivalents()
        {
            var mf = new TestDoubles.MockSsrsWebServiceFactory();
            var paramArray = mf.MakeSimpleTestParameters();

            var extraConfig = new CrcExtraConfiguration();
            var repConfig = new CrcReportConfig();
            repConfig.Path = "TestReport";
            repConfig.CrcParamConfigs = new List<CrcReportConfig.CrcParamConfig>();
            repConfig.CrcParamConfigs.Add(new CrcReportConfig.CrcParamConfig()
            {
                ParamName = "ParamOne",
                EmptyEquivalentValues = new List<string>() { "Value1" }
            });
            extraConfig.CrcReportConfigs.Add(repConfig);

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, extraConfig);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(2, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(1, p1check.EmptyEquivalentValues.Count());
            Assert.IsTrue(p1check.EmptyEquivalentValues.Contains("Value1"));
        }
        public void CanMakeReportAndInterpretSSRSDependencies()
        {
            var mf = new TestDoubles.MockSsrsWebServiceFactory();
            var paramArray = mf.MakeDependantTestParameters();

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(3, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(2, p1check.DependantParameterNames.Count());
            Assert.IsTrue(p1check.DependantParameterNames.Contains("ParamTwo"));
            Assert.IsTrue(p1check.DependantParameterNames.Contains("ParamThree"));

            var p2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamTwo");
            Assert.IsNotNull(p2check);
            Assert.AreEqual(0, p2check.DependantParameterNames.Count());

            var p3check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamThree");
            Assert.IsNotNull(p3check);
            Assert.AreEqual(0, p3check.DependantParameterNames.Count());
        }
        public void CanMakeReportAndDetectNormalSelect()
        {
            rws.ReportParameter p1 = new rws.ReportParameter();
            p1.Name = "ParamSelect";
            p1.Nullable = false;
            p1.Type = rws.ParameterTypeEnum.String;
            p1.ValidValuesQueryBased = false;
            p1.ValidValues = new rws.ValidValue[]{ new rws.ValidValue(){Label = "--All--", Value = "%%"},
                                    new rws.ValidValue(){Label = "Label1", Value = "Value1"},
                                    new rws.ValidValue(){Label = "Label2", Value = "Value2"}};
            rws.ReportParameter[] paramArray = new rws.ReportParameter[] { p1 };

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(1, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamSelect");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(CrcParameterType.Select, p1check.ParameterType);
        }
        public void CanMakeReportAndDetectNormalBoolField()
        {
            rws.ReportParameter p1 = new rws.ReportParameter();
            p1.Name = "ParamBool";
            p1.Nullable = false;
            p1.Type = rws.ParameterTypeEnum.Boolean;
            p1.ValidValuesQueryBased = false;
            p1.ValidValues = null;
            rws.ReportParameter[] paramArray = new rws.ReportParameter[] { p1 };

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(1, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamBool");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(CrcParameterType.Boolean, p1check.ParameterType);
        }
        public void CanMakeReportAndDetectEmptySelect()
        {
            // sometimes dependant selects can be empty at first
            // they are always query based though
            rws.ReportParameter p1 = new rws.ReportParameter();
            p1.Name = "ParamSelect";
            p1.Nullable = false;
            p1.Type = rws.ParameterTypeEnum.String;
            p1.ValidValuesQueryBased = true;
            p1.ValidValues = null;
            rws.ReportParameter[] paramArray = new rws.ReportParameter[] { p1 };

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(1, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamSelect");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(CrcParameterType.Select, p1check.ParameterType);
        }
        public void CanMakeReportAndDetectBoolFieldWithYesNoValues()
        {
            rws.ReportParameter p1 = new rws.ReportParameter();
            p1.Name = "ParamBool";
            p1.Nullable = false;
            p1.Type = rws.ParameterTypeEnum.Boolean;
            p1.ValidValuesQueryBased = false;
            p1.ValidValues = new rws.ValidValue[] {
                new rws.ValidValue() { Label = "Yes", Value="true" },
                new rws.ValidValue() { Label = "No", Value="false" }};
            rws.ReportParameter[] paramArray = new rws.ReportParameter[] { p1 };

            var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>();

            // make main service obj
            var factory = new CrcReportDefinitionFactory();
            var repDefn = factory.Create("TestReport", paramArray, configMock);

            Assert.IsNotNull(repDefn);
            Assert.AreEqual("TestReport", repDefn.ReportPath);
            Assert.AreEqual(1, repDefn.ParameterDefinitions.Count());
            var p1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamBool");
            Assert.IsNotNull(p1check);
            Assert.AreEqual(CrcParameterType.Select, p1check.ParameterType);
            Assert.AreEqual(2, p1check.ValidValues.Count());
            var v1 = p1check.ValidValues.FirstOrDefault(v => v.Value == "true");
            Assert.IsNotNull(v1);
            Assert.AreEqual("Yes" ,v1.Label);
            var v2 = p1check.ValidValues.FirstOrDefault(v => v.Value == "false");
            Assert.IsNotNull(v2);
            Assert.AreEqual("No", v2.Label);
        }