public void CanUpdateDefaultValues() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ParameterChoice = new CrcParameterChoice(pd.Name); pd.ParameterChoice.Values.Add("Value1"); pd.ParameterChoice.Values.Add("Value2"); pd.ParameterChoice.Values.Add("Value3"); var newDV = new List <string>(); newDV.Add("Value4"); newDV.Add("Value5"); var r = new CrcParameterRefresher(); r.UpdateDefaultValues(pd, newDV.ToArray()); Assert.AreEqual(2, pd.ParameterChoice.Values.Count()); var check4 = pd.ParameterChoice.Values.FirstOrDefault(d => d == "Value4"); Assert.IsNotNull(check4); var check5 = pd.ParameterChoice.Values.FirstOrDefault(d => d == "Value5"); Assert.IsNotNull(check5); }
public void CanUpdateValidValues() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); var newVV = new List <rws.ValidValue>(); newVV.Add(new rws.ValidValue() { Label = "Label3", Value = "Value3" }); var r = new CrcParameterRefresher(); r.UpdateValidValues(pd, newVV.ToArray()); Assert.AreEqual(1, pd.ValidValues.Count()); var checkVV = pd.ValidValues[0]; Assert.AreEqual("Label3", checkVV.Label); Assert.AreEqual("Value3", checkVV.Value); }
public void CanCloneCrcParameterDefinition() { var firstP = new CrcParameterDefinition(); firstP.Name = "Foo"; firstP.ParameterType = CrcParameterType.Select; firstP.AllowNull = true; firstP.RequiredFromUser = true; firstP.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); firstP.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); var cloneP = firstP.DeepClone(); Assert.AreEqual("Foo", cloneP.Name); Assert.AreEqual(CrcParameterType.Select, cloneP.ParameterType); Assert.AreEqual(true, cloneP.AllowNull); Assert.AreEqual(true, cloneP.RequiredFromUser); Assert.AreEqual(2, cloneP.ValidValues.Count()); Assert.IsNotNull(cloneP.ValidValues.FirstOrDefault(v => v.Value == "Value1")); Assert.AreEqual("Label1", cloneP.ValidValues.FirstOrDefault(v => v.Value == "Value1").Label); Assert.IsNotNull(cloneP.ValidValues.FirstOrDefault(v => v.Value == "Value2")); Assert.AreEqual("Label2", cloneP.ValidValues.FirstOrDefault(v => v.Value == "Value2").Label); // change original firstP.Name = "FooChanged"; firstP.ValidValues[0].Label = "Label1Changed"; // clone should not be affected Assert.AreEqual("Foo", cloneP.Name); Assert.IsNotNull(cloneP.ValidValues.FirstOrDefault(v => v.Value == "Value1")); Assert.AreEqual("Label1", cloneP.ValidValues.FirstOrDefault(v => v.Value == "Value1").Label); }
public void RefreshParameter_CanHandleNulls() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ParameterChoice = new CrcParameterChoice(pd.Name); pd.ParameterChoice.Values.Add("Value1"); pd.ParameterChoice.Values.Add("Value2"); pd.ParameterChoice.Values.Add("Value3"); var latestParam = new rws.ReportParameter(); latestParam.Name = "TestParam"; latestParam.ValidValues = null; latestParam.DefaultValues = null; var r = new CrcParameterRefresher(); r.RefreshParameter(pd, latestParam); Assert.IsNotNull(pd); Assert.AreEqual("TestParam", pd.Name); Assert.AreEqual(0, pd.ParameterChoice.Values.Count()); }
public void IsChoiceValid_CanHandleEmptyChoice() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label3", Value = "Value3" }); pd.ParameterChoice = new CrcParameterChoice(pd.Name); var r = new CrcParameterRefresher(); bool valid = r.IsChoiceValid(pd); Assert.IsTrue(valid); }
public CrcReportDefinition MakeTestReportDefn() { var repDefn = new CrcReportDefinition(); repDefn.ReportPath = "/Pretend/Path"; repDefn.DisplayName = "Pretend Report"; var dateParam = new CrcParameterDefinition(); dateParam.Name = "PretendDateParam"; dateParam.DisplayName = "Pretend Date Param"; dateParam.ParameterType = CrcParameterType.Date; repDefn.ParameterDefinitions.Add(dateParam); var singleChoiceParam = new CrcParameterDefinition(); singleChoiceParam.Name = "PretendSingleSelect"; singleChoiceParam.DisplayName = "Pretend Single Select"; singleChoiceParam.ParameterType = CrcParameterType.Select; singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S1", Label = "Single1" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S2", Label = "Single2" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S3", Label = "Single3" }); repDefn.ParameterDefinitions.Add(singleChoiceParam); var multiChoiceParam = new CrcParameterDefinition(); multiChoiceParam.Name = "PretendMultiSelect"; multiChoiceParam.DisplayName = "Pretend Multi Select"; multiChoiceParam.ParameterType = CrcParameterType.MultiSelect; multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M1", Label = "Multi1" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M2", Label = "Multi2" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M3", Label = "Multi3" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M4", Label = "Multi4" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M5", Label = "Multi5" }); repDefn.ParameterDefinitions.Add(multiChoiceParam); return(repDefn); }
public CrcReportDefinition MakeTestReportDefn(string dateValue, string selectValue) { var repDefn = new CrcReportDefinition(); repDefn.ReportPath = "/Pretend/Path"; repDefn.DisplayName = "Pretend Report"; var dateParam = new CrcParameterDefinition(); dateParam.Name = "PretendDateParam"; dateParam.DisplayName = "Pretend Date Param"; dateParam.ParameterType = CrcParameterType.Date; dateParam.ParameterChoice = new CrcParameterChoice("PretendDateParam"); dateParam.ParameterChoice.SingleValue = dateValue; repDefn.ParameterDefinitions.Add(dateParam); var singleChoiceParam = new CrcParameterDefinition(); singleChoiceParam.Name = "PretendSingleSelect"; singleChoiceParam.DisplayName = "Pretend Single Select"; singleChoiceParam.ParameterType = CrcParameterType.Select; singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S1", Label = "Single1" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S2", Label = "Single2" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S3", Label = "Single3" }); singleChoiceParam.ParameterChoice = new CrcParameterChoice("PretendSingleSelect"); singleChoiceParam.ParameterChoice.SingleValue = selectValue; repDefn.ParameterDefinitions.Add(singleChoiceParam); return(repDefn); }
public void CanUpdateDefaultValues() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ParameterChoice = new CrcParameterChoice(pd.Name); pd.ParameterChoice.Values.Add("Value1"); pd.ParameterChoice.Values.Add("Value2"); pd.ParameterChoice.Values.Add("Value3"); var newDV = new List<string>(); newDV.Add("Value4"); newDV.Add("Value5"); var r = new CrcParameterRefresher(); r.UpdateDefaultValues(pd, newDV.ToArray()); Assert.AreEqual(2, pd.ParameterChoice.Values.Count()); var check4 = pd.ParameterChoice.Values.FirstOrDefault(d => d == "Value4"); Assert.IsNotNull(check4); var check5 = pd.ParameterChoice.Values.FirstOrDefault(d => d == "Value5"); Assert.IsNotNull(check5); }
public CrcReportDefinition MakeTestReportDefn(string dateValue, string selectValue) { var repDefn = new CrcReportDefinition(); repDefn.ReportPath = "/Pretend/Path"; repDefn.DisplayName = "Pretend Report"; var dateParam = new CrcParameterDefinition(); dateParam.Name = "PretendDateParam"; dateParam.DisplayName = "Pretend Date Param"; dateParam.ParameterType = CrcParameterType.Date; dateParam.ParameterChoice = new CrcParameterChoice("PretendDateParam"); dateParam.ParameterChoice.SingleValue = dateValue; repDefn.ParameterDefinitions.Add(dateParam); var singleChoiceParam = new CrcParameterDefinition(); singleChoiceParam.Name = "PretendSingleSelect"; singleChoiceParam.DisplayName = "Pretend Single Select"; singleChoiceParam.ParameterType = CrcParameterType.Select; singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S1", Label = "Single1" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S2", Label = "Single2" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S3", Label = "Single3" }); singleChoiceParam.ParameterChoice = new CrcParameterChoice("PretendSingleSelect"); singleChoiceParam.ParameterChoice.SingleValue = selectValue; repDefn.ParameterDefinitions.Add(singleChoiceParam); return repDefn; }
public void IsChoiceValid_CanHandleMissingChoice() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label3", Value = "Value3" }); var r = new CrcParameterRefresher(); bool valid = r.IsChoiceValid(pd); Assert.IsTrue(valid); }
public void AddParameterDefinitions(rws.ReportParameter[] wsReportParameters, CrcReportDefinition repDef, CrcExtraConfiguration extraConfig, CrcReportConfig reportConfig) { List<string> showByDefault = new List<string>(); if (reportConfig != null) showByDefault = reportConfig.GetParamsToShowByDefault(); List<string> defaultEmptyEquivalents = new List<string>(); if (extraConfig != null && extraConfig.DefaultEmptyEquivalentValues != null) defaultEmptyEquivalents = extraConfig.DefaultEmptyEquivalentValues; foreach (var paramLoop in wsReportParameters) { CrcReportConfig.CrcParamConfig paramConfig = null; // get extra config for parameter, if there is any if (reportConfig != null) paramConfig = reportConfig.CrcParamConfigs.FirstOrDefault(p => p.ParamName == paramLoop.Name); var crcParam = new CrcParameterDefinition(); crcParam.Name = paramLoop.Name; crcParam.id = "param_" + paramLoop.Name.Replace(" ", "_"); crcParam.AllowNull = paramLoop.Nullable; crcParam.AllowBlank = paramLoop.AllowBlank; if (string.IsNullOrEmpty(paramLoop.Prompt)) { // if Prompt is null or empty, it means Parameter is 'Hidden' in SSRS crcParam.Hidden = true; crcParam.DisplayName = paramLoop.Name; } else { crcParam.DisplayName = paramLoop.Prompt; } if (string.IsNullOrEmpty(crcParam.DisplayName)) crcParam.DisplayName = crcParam.Name; // if PromptUser is false then Parameter is 'Internal' in SSRS if (!paramLoop.PromptUser) crcParam.Hidden = true; if (paramLoop.Type == rws.ParameterTypeEnum.DateTime) crcParam.ParameterType = CrcParameterType.Date; else if ((paramLoop.ValidValues != null && paramLoop.ValidValues.Count() > 0) || paramLoop.ValidValuesQueryBased) { if (paramLoop.MultiValue) crcParam.ParameterType = CrcParameterType.MultiSelect; else crcParam.ParameterType = CrcParameterType.Select; } else if (paramLoop.Type == rws.ParameterTypeEnum.Boolean) crcParam.ParameterType = CrcParameterType.Boolean; else crcParam.ParameterType = CrcParameterType.Text; if (paramLoop.ValidValues != null) { foreach (var valLoop in paramLoop.ValidValues) { crcParam.ValidValues.Add(new CrcValidValue() { Value = valLoop.Value, Label = valLoop.Label }); } if (crcParam.ValidValues.Count() > 10) crcParam.AllowListSearch = true; } // check config for dependencies if (paramConfig != null && paramConfig.DependantParams != null && paramConfig.DependantParams.Count() > 0) { logger.DebugFormat("Param {0} has extraconfig dependancies: {1}", paramLoop.Name, string.Join(", ", paramConfig.DependantParams.ToArray())); foreach (string dpname in paramConfig.DependantParams) crcParam.DependantParameterNames.Add(dpname); } foreach (string sloop in defaultEmptyEquivalents) { AddEmptyEquivalent(crcParam, sloop); } // check for specific empty equivalents for this parameter if (paramConfig != null && paramConfig.EmptyEquivalentValues != null) { foreach (string sloop in paramConfig.EmptyEquivalentValues) { AddEmptyEquivalent(crcParam, sloop); } } if (showByDefault.Contains(crcParam.Name)) crcParam.AlwaysShow = true; repDef.ParameterDefinitions.Add(crcParam); } }
public CrcReportDefinition MakeTestReportDefn() { var repDefn = new CrcReportDefinition(); repDefn.ReportPath = "/Pretend/Path"; repDefn.DisplayName = "Pretend Report"; var dateParam = new CrcParameterDefinition(); dateParam.Name = "PretendDateParam"; dateParam.DisplayName = "Pretend Date Param"; dateParam.ParameterType = CrcParameterType.Date; repDefn.ParameterDefinitions.Add(dateParam); var singleChoiceParam = new CrcParameterDefinition(); singleChoiceParam.Name = "PretendSingleSelect"; singleChoiceParam.DisplayName = "Pretend Single Select"; singleChoiceParam.ParameterType = CrcParameterType.Select; singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S1", Label = "Single1" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S2", Label = "Single2" }); singleChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "S3", Label = "Single3" }); repDefn.ParameterDefinitions.Add(singleChoiceParam); var multiChoiceParam = new CrcParameterDefinition(); multiChoiceParam.Name = "PretendMultiSelect"; multiChoiceParam.DisplayName = "Pretend Multi Select"; multiChoiceParam.ParameterType = CrcParameterType.MultiSelect; multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M1", Label = "Multi1" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M2", Label = "Multi2" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M3", Label = "Multi3" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M4", Label = "Multi4" }); multiChoiceParam.ValidValues.Add(new CrcValidValue() { Value = "M5", Label = "Multi5" }); repDefn.ParameterDefinitions.Add(multiChoiceParam); return repDefn; }
public void CanRefreshDependantParameters_Simple() { // make report defn var repDefn = new CrcReportDefinition(); repDefn.ReportPath = "Test/Report"; var pd1 = new CrcParameterDefinition(); pd1.Name = "ParamOne"; pd1.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); pd1.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); pd1.ValidValues.Add(new CrcValidValue() { Label = "Label3", Value = "Value3" }); pd1.DependantParameterNames.Add("ParamTwo"); var pd2 = new CrcParameterDefinition(); pd2.Name = "ParamTwo"; pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel1_1", Value = "SubValue1_1" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel1_2", Value = "SubValue1_2" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel2_1", Value = "SubValue2_1" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel2_2", Value = "SubValue2_2" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel3_1", Value = "SubValue3_1" }); repDefn.ParameterDefinitions.Add(pd1); repDefn.ParameterDefinitions.Add(pd2); // make choice collection var choiceCollection = new CrcParameterChoiceCollection(); var paramChoice = new CrcParameterChoice("ParamOne"); paramChoice.Values.Add("Value2"); choiceCollection.ParameterChoiceList.Add(paramChoice); // make server side params to return ItemParameter p1 = new ItemParameter(); p1.Name = "ParamOne"; p1.ValidValues = new ValidValue[] { new ValidValue() { Label = "Label1", Value = "Value1" }, new ValidValue() { Label = "Label2", Value = "Value2" }, new ValidValue() { Label = "Label3", Value = "Value3" } }; p1.DefaultValues = new string[] { }; ItemParameter p2 = new ItemParameter(); p2.Name = "ParamTwo"; p2.ValidValues = new ValidValue[] { new ValidValue() { Label = "SubLabel2_1", Value = "SubValue2_1" }, new ValidValue() { Label = "SubLabel2_2", Value = "SubValue2_2" } }; p2.DefaultValues = new string[] { }; ItemParameter[] paramArrayToReturn = new ItemParameter[] { p1, p2 }; // make mocks for ccs var mf = new TestDoubles.MockSsrsWebServiceFactory(); var soapClientFactory = mf.MakeMockSoapClientFactory( mf.MakeMockReportingService2010Soap("Value2", paramArrayToReturn)); var cacheMock = MockRepository.GenerateMock <CrcCacheManager>(); var configMock = MockRepository.GenerateMock <CrcExtraConfiguration>(); // make ccs var ccs = new CrissCrossServices(soapClientFactory, cacheMock, configMock, null); ccs.RefreshDependantParameters(repDefn, choiceCollection); Assert.AreEqual(2, repDefn.ParameterDefinitions.Count()); var pd1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne"); Assert.IsNotNull(pd1check); Assert.AreEqual("Value2", pd1check.ParameterChoice.SingleValue); var pd2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamTwo"); Assert.IsNotNull(pd2check); Assert.AreEqual(2, pd2check.ValidValues.Count()); Assert.IsNotNull(pd2check.ValidValues.FirstOrDefault(vv => vv.Value == "SubValue2_1")); Assert.IsNotNull(pd2check.ValidValues.FirstOrDefault(vv => vv.Value == "SubValue2_2")); }
public void CanRefreshDependantParameters_Simple() { // make report defn var repDefn = new CrcReportDefinition(); repDefn.ReportPath = "Test/Report"; var pd1 = new CrcParameterDefinition(); pd1.Name = "ParamOne"; pd1.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); pd1.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); pd1.ValidValues.Add(new CrcValidValue() { Label = "Label3", Value = "Value3" }); pd1.DependantParameterNames.Add("ParamTwo"); var pd2 = new CrcParameterDefinition(); pd2.Name = "ParamTwo"; pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel1_1", Value = "SubValue1_1" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel1_2", Value = "SubValue1_2" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel2_1", Value = "SubValue2_1" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel2_2", Value = "SubValue2_2" }); pd2.ValidValues.Add(new CrcValidValue() { Label = "SubLabel3_1", Value = "SubValue3_1" }); repDefn.ParameterDefinitions.Add(pd1); repDefn.ParameterDefinitions.Add(pd2); // make choice collection var choiceCollection = new CrcParameterChoiceCollection(); var paramChoice = new CrcParameterChoice("ParamOne"); paramChoice.Values.Add("Value2"); choiceCollection.ParameterChoiceList.Add( paramChoice); // make server side params to return ReportParameter p1 = new ReportParameter(); p1.Name = "ParamOne"; p1.ValidValues = new ValidValue[]{ new ValidValue(){Label = "Label1", Value = "Value1"}, new ValidValue(){Label = "Label2", Value = "Value2"}, new ValidValue(){Label = "Label3", Value = "Value3"}}; p1.DefaultValues = new string[] { }; ReportParameter p2 = new ReportParameter(); p2.Name = "ParamTwo"; p2.ValidValues = new ValidValue[]{ new ValidValue(){Label = "SubLabel2_1", Value = "SubValue2_1"}, new ValidValue(){Label = "SubLabel2_2", Value = "SubValue2_2"}}; p2.DefaultValues = new string[] { }; ReportParameter[] paramArrayToReturn = new ReportParameter[] { p1, p2 }; // make mocks for ccs var mf = new TestDoubles.MockSsrsWebServiceFactory(); var soapClientFactory = mf.MakeMockSoapClientFactory( mf.MakeMockReportingService2005Soap("Value2", paramArrayToReturn)); var cacheMock = MockRepository.GenerateMock<CrcCacheManager>(); var configMock = MockRepository.GenerateMock<CrcExtraConfiguration>(); // make ccs var ccs = new CrissCrossServices(soapClientFactory, cacheMock, configMock, null); ccs.RefreshDependantParameters(repDefn, choiceCollection); Assert.AreEqual(2,repDefn.ParameterDefinitions.Count()); var pd1check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamOne"); Assert.IsNotNull(pd1check); Assert.AreEqual("Value2", pd1check.ParameterChoice.SingleValue); var pd2check = repDefn.ParameterDefinitions.FirstOrDefault(p => p.Name == "ParamTwo"); Assert.IsNotNull(pd2check); Assert.AreEqual(2, pd2check.ValidValues.Count()); Assert.IsNotNull(pd2check.ValidValues.FirstOrDefault( vv => vv.Value == "SubValue2_1")); Assert.IsNotNull(pd2check.ValidValues.FirstOrDefault( vv => vv.Value == "SubValue2_2")); }
public void CanUpdateValidValues() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); var newVV = new List<rws.ValidValue>(); newVV.Add(new rws.ValidValue(){ Label = "Label3", Value = "Value3"}); var r = new CrcParameterRefresher(); r.UpdateValidValues(pd, newVV.ToArray()); Assert.AreEqual(1, pd.ValidValues.Count()); var checkVV = pd.ValidValues[0]; Assert.AreEqual("Label3", checkVV.Label); Assert.AreEqual("Value3", checkVV.Value); }
public void IsChoiceValid_CanDetectInValid() { var pd = new CrcParameterDefinition(); pd.Name = "TestParam"; pd.ValidValues.Add(new CrcValidValue() { Label = "Label1", Value = "Value1" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label2", Value = "Value2" }); pd.ValidValues.Add(new CrcValidValue() { Label = "Label3", Value = "Value3" }); pd.ParameterChoice = new CrcParameterChoice(pd.Name); pd.ParameterChoice.Values.Add("Value1"); pd.ParameterChoice.Values.Add("Value5"); var r = new CrcParameterRefresher(); bool valid = r.IsChoiceValid(pd); Assert.IsFalse(valid); }
private string SelectListAsString(CrcParameterDefinition paramDefn, int truncateListLimit) { StringBuilder sb = new StringBuilder(); int count = 0; foreach (var valLoop in paramDefn.ParameterChoice.Values) { var vvMatch = paramDefn.ValidValues.FirstOrDefault(vv => vv.Value == valLoop); if (vvMatch == null) throw new ApplicationException(string.Format("Param {0}: {1} is not a valid value", paramDefn.Name, valLoop)); if (sb.Length > 0) sb.Append(", "); sb.Append(vvMatch.Label); count += 1; if (truncateListLimit > 0 && count > truncateListLimit) { sb.AppendFormat(" ... (and {0} others)", paramDefn.ParameterChoice.Values.Count() - count); break; } } return sb.ToString(); }
private void AddEmptyEquivalent(CrcParameterDefinition crcParam, string emptyEquiv) { if (crcParam.ParameterType == CrcParameterType.MultiSelect || crcParam.ParameterType == CrcParameterType.Select) { // add if valid value if (crcParam.ValidValues.FirstOrDefault(vv => vv.Value == emptyEquiv) != null) crcParam.EmptyEquivalentValues.Add(emptyEquiv); } else // just add crcParam.EmptyEquivalentValues.Add(emptyEquiv); }