255 lines
10 KiB
C#
255 lines
10 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Xml.Linq;
|
|
using Org.XmlUnit.Builder;
|
|
using Org.XmlUnit.Diff;
|
|
using Org.XmlUnit.Input;
|
|
using Org.XmlUnit.Validation;
|
|
using XmlUnit = Org.XmlUnit;
|
|
using CRIF.ACTion.Configuration;
|
|
|
|
namespace CRIF.ACTion.Tests
|
|
{
|
|
public static class TestCommon
|
|
{
|
|
|
|
public static CrifSettings GetTestSettings()
|
|
{
|
|
var settings = new CrifSettings
|
|
{
|
|
ApiSettings = new ApiConnectionSettings
|
|
{
|
|
Username = "LandmarkCUImportUser",
|
|
InterfaceId = 600002,
|
|
OrgCode = "LandmarkCU",
|
|
OrgId = 4,
|
|
},
|
|
SourceChannels = new SourceChannelSettings
|
|
{
|
|
DefaultSourceChannelId = 2399724,
|
|
CreditCardSourceChannelId = 2294092,
|
|
},
|
|
ProductIds = new ProductIdSettings
|
|
{
|
|
CC_CashBack = 132,
|
|
CC_Rewards = 133,
|
|
CC_Student = 134,
|
|
CC_Secure = 136,
|
|
EQ_HELOC_Flex = 139,
|
|
EQ_Home_Equity_Fixed = 148,
|
|
EQ_Mtg_Refi_Express = 149,
|
|
EQ_Mfg_Home_And_Land = 146,
|
|
V_Vehicle = 125,
|
|
V_VehiclePreapproval = 126,
|
|
M_Boat = 129,
|
|
P_Powersport = 131,
|
|
T_TrailerMotorhome = 130,
|
|
S_Signature = 140
|
|
},
|
|
ServicingChannels = new ServicingChannelSettings
|
|
{
|
|
DefaultServicingChannel = 1698432,
|
|
},
|
|
CustomFieldMappings = new CustomFieldMappings
|
|
{
|
|
LoanTypeToPromoId = new Dictionary<string, string>()
|
|
{
|
|
{ "132", "-119" },
|
|
{ "133", "-119" },
|
|
{ "134", "-119" },
|
|
{ "136", "-119" },
|
|
{ "139", "-115" },
|
|
{ "148", "-115" },
|
|
{ "149", "-115" },
|
|
{ "146", "-115" },
|
|
{ "125", "-116" },
|
|
{ "126", "-116" },
|
|
{ "129", "-116" },
|
|
{ "131", "-116" },
|
|
{ "130", "-116" },
|
|
{ "140", "-118" }
|
|
}
|
|
},
|
|
CustomFields = new CustomFieldConfigs
|
|
{
|
|
CustomPropertyRenovationFieldData = new List<CustomPropertyStatusData>()
|
|
{
|
|
{
|
|
new CustomPropertyStatusData
|
|
{
|
|
CustomFieldId = "-109",
|
|
ProductCategoryId = "28",
|
|
SortOrder = "1",
|
|
YesId = "270",
|
|
NoId = "269",
|
|
NaId = "301"
|
|
}
|
|
}
|
|
},
|
|
CustomPropertySaleFieldData = new List<CustomPropertyStatusData>()
|
|
{
|
|
{
|
|
new CustomPropertyStatusData
|
|
{
|
|
CustomFieldId = "-110",
|
|
ProductCategoryId = "28",
|
|
SortOrder = "2",
|
|
YesId = "272",
|
|
NoId = "271",
|
|
NaId = "302"
|
|
}
|
|
}
|
|
},
|
|
CustomJointCreditFieldData =
|
|
[
|
|
new CustomJointCreditData
|
|
{
|
|
CustomFieldId = "-127",
|
|
ProductCategoryId = "28",
|
|
SortOrder = "25",
|
|
IndividuallyId = "314",
|
|
JointlyId = "315"
|
|
},
|
|
new CustomJointCreditData
|
|
{
|
|
CustomFieldId = "-126",
|
|
ProductCategoryId = "27",
|
|
SortOrder = "25",
|
|
IndividuallyId = "312",
|
|
JointlyId = "313"
|
|
},
|
|
new CustomJointCreditData
|
|
{
|
|
CustomFieldId = "-125",
|
|
ProductCategoryId = "26",
|
|
SortOrder = "25",
|
|
IndividuallyId = "310",
|
|
JointlyId = "311"
|
|
},
|
|
new CustomJointCreditData
|
|
{
|
|
CustomFieldId = "-124",
|
|
ProductCategoryId = "24",
|
|
SortOrder = "25",
|
|
IndividuallyId = "308",
|
|
JointlyId = "309"
|
|
},
|
|
new CustomJointCreditData
|
|
{
|
|
CustomFieldId = "-122",
|
|
ProductCategoryId = "25",
|
|
SortOrder = "25",
|
|
IndividuallyId = "303",
|
|
JointlyId = "304"
|
|
}
|
|
],
|
|
ProductIdToCategoryId = new Dictionary<string, string>()
|
|
{
|
|
{"107" , "22"},
|
|
{"108" , "22"},
|
|
{"109" , "22"},
|
|
{"110" , "22"},
|
|
{"111" , "22"},
|
|
{"112" , "22"},
|
|
{"113" , "22"},
|
|
{"114" , "23"},
|
|
{"115" , "22"},
|
|
{"116" , "22"},
|
|
{"117" , "22"},
|
|
{"118" , "22"},
|
|
{"119" , "22"},
|
|
{"120" , "22"},
|
|
{"121" , "22"},
|
|
{"122" , "22"},
|
|
{"123" , "22"},
|
|
{"124" , "22"},
|
|
{"125" , "27"},
|
|
{"126" , "27"},
|
|
{"127" , "27"},
|
|
{"128" , "27"},
|
|
{"129" , "27"},
|
|
{"130" , "27"},
|
|
{"131" , "27"},
|
|
{"132" , "24"},
|
|
{"133" , "24"},
|
|
{"134" , "24"},
|
|
{"135" , "24"},
|
|
{"136" , "24"},
|
|
{"137" , "24"},
|
|
{"138" , "24"},
|
|
{"139" , "28"},
|
|
{"140" , "25"},
|
|
{"141" , "26"},
|
|
{"142" , "26"},
|
|
{"143" , "25"},
|
|
{"144" , "25"},
|
|
{"145" , "25"},
|
|
{"146" , "28"},
|
|
{"147" , "28"},
|
|
{"148" , "28"},
|
|
{"149" , "28"},
|
|
{"150" , "27"},
|
|
{"151" , "24"}
|
|
}
|
|
}
|
|
|
|
};
|
|
|
|
return settings;
|
|
}
|
|
|
|
public static ICollection<Difference> Compare(XElement xml1, XElement xml2)
|
|
{
|
|
var source1 = Input.FromNode(xml1).Build();
|
|
var source2 = Input.FromNode(xml2).Build();
|
|
|
|
return Compare(source1, source2);
|
|
}
|
|
|
|
public static ICollection<Difference> Compare(XElement xml1, string xmlLocation)
|
|
{
|
|
var source1 = Input.FromNode(xml1).Build();
|
|
var source2 = Input.FromFile(xmlLocation).Build();
|
|
|
|
return Compare(source1, source2);
|
|
}
|
|
|
|
private static ICollection<Difference> Compare(XmlUnit.ISource source1, XmlUnit.ISource source2)
|
|
{
|
|
var diff = DiffBuilder.Compare(source2)
|
|
.WithTest(source1)
|
|
.CheckForIdentical()
|
|
.Build();
|
|
|
|
var similar = diff.Differences.Where(x => x.Result == ComparisonResult.SIMILAR).ToList();
|
|
var different = diff.Differences.Where(x => x.Result == ComparisonResult.DIFFERENT).ToList();
|
|
|
|
|
|
//TODO #243: Apparently this will be false if elements are in different orders, but diff.Differences will have data -_-
|
|
var result = diff.HasDifferences();
|
|
|
|
return different;
|
|
}
|
|
|
|
public static IEnumerable<ValidationProblem> Validate(XNode xmlData)
|
|
{
|
|
Validator v = Validator.ForLanguage(Languages.W3C_XML_SCHEMA_NS_URI);
|
|
v.SchemaSources = [
|
|
new StreamSource("XSDs" + System.IO.Path.DirectorySeparatorChar + "actionAPI.XSD"),
|
|
new StreamSource("XSDs" + System.IO.Path.DirectorySeparatorChar + "appSchema.xsd"),
|
|
new StreamSource("XSDs" + System.IO.Path.DirectorySeparatorChar + "commonSchema.xsd"),
|
|
new StreamSource("XSDs" + System.IO.Path.DirectorySeparatorChar + "maintSchema.xsd"),
|
|
new StreamSource("XSDs" + System.IO.Path.DirectorySeparatorChar + "msgSchema.xsd"),
|
|
new StreamSource("XSDs" + System.IO.Path.DirectorySeparatorChar + "qoSchema.xsd"),
|
|
new StreamSource("XSDs" + System.IO.Path.DirectorySeparatorChar + "utilSchema.xsd"),
|
|
];
|
|
ValidationResult r = v.ValidateInstance(
|
|
Input.FromNode(xmlData)
|
|
.Build());
|
|
|
|
return r.Problems;
|
|
// return r.Valid;
|
|
}
|
|
}
|
|
}
|