public void ServerUrlWithTrailingSlash() { ws = new SonarWebService(downloader, "http://myhost:222/"); downloader.Pages["http://myhost:222/api/profiles/list?language=cs&project=foo+bar"] = "[{\"name\":\"profile1\",\"language\":\"cs\",\"default\":true}]"; string qualityProfile; bool result = ws.TryGetQualityProfile("foo bar", "cs", out qualityProfile); Assert.IsTrue(result); Assert.AreEqual("profile1", qualityProfile); downloader.Pages["http://myhost:222/api/profiles/index?language=cs&name=Sonar+way"] = "[{\"name\":\"Sonar way\",\"language\":\"cs\",\"default\":true}]"; var expected1 = new List<string>(); var actual1 = new List<string>(ws.GetActiveRuleKeys("Sonar way", "cs", "foo")); Assert.AreEqual(true, expected1.SequenceEqual(actual1)); downloader.Pages["http://myhost:222/api/rules/search?f=internalKey&ps=" + int.MaxValue + "&repositories=fxcop"] = "{\"total\":2,\"p\":1,\"ps\":10,\"rules\":[{\"key\":\"fxcop:My_Own_FxCop_Rule\"},{\"key\":\"fxcop:UriParametersShouldNotBeStrings\",\"internalKey\":\"CA1054\"}]}"; var expected2 = new Dictionary<string, string>(); expected2["fxcop:My_Own_FxCop_Rule"] = null; expected2["fxcop:UriParametersShouldNotBeStrings"] = "CA1054"; var actual2 = ws.GetInternalKeys("fxcop"); Assert.AreEqual(true, expected2.Count == actual2.Count && !expected2.Except(actual2).Any()); downloader.Pages["http://myhost:222/api/properties?resource=foo+bar"] = "[{\"key\": \"sonar.property1\",\"value\": \"value1\"},{\"key\": \"sonar.property2\",\"value\": \"value2\"}]"; var expected3 = new Dictionary<string, string>(); expected3["sonar.property1"] = "value1"; expected3["sonar.property2"] = "value2"; expected3["sonar.cs.msbuild.testProjectPattern"] = SonarProperties.DefaultTestProjectPattern; var actual3 = ws.GetProperties("foo bar", new TestLogger()); Assert.AreEqual(true, expected3.Count == actual3.Count && !expected3.Except(actual3).Any()); downloader.Pages["http://myhost:222/api/updatecenter/installed_plugins"] = "[{\"key\":\"visualstudio\",\"name\":\"...\",\"version\":\"1.2\"},{\"key\":\"csharp\",\"name\":\"C#\",\"version\":\"4.0\"}]"; var expected4 = new List<string>(); expected4.Add("visualstudio"); expected4.Add("csharp"); var actual4 = new List<string>(ws.GetInstalledPlugins()); Assert.AreEqual(true, expected4.SequenceEqual(actual4)); }
public void GetInternalKeys() { downloader.Pages["http://myhost:222/api/rules/search?f=internalKey&ps=" + int.MaxValue + "&repositories=fxcop"] = "{\"total\":2,\"p\":1,\"ps\":10,\"rules\":[{\"key\":\"fxcop:My_Own_FxCop_Rule\"},{\"key\":\"fxcop:UriParametersShouldNotBeStrings\",\"internalKey\":\"CA1054\"}]}"; var expected = new Dictionary<string, string>(); expected["fxcop:My_Own_FxCop_Rule"] = null; expected["fxcop:UriParametersShouldNotBeStrings"] = "CA1054"; var actual = ws.GetInternalKeys("fxcop"); Assert.AreEqual(true, expected.Count == actual.Count && !expected.Except(actual).Any()); }
public void GetProperties() { downloader.Pages["http://myhost:222/api/properties?resource=foo+bar"] = "[{\"key\": \"sonar.property1\",\"value\": \"value1\"},{\"key\": \"sonar.property2\",\"value\": \"value2\"}]"; var expected = new Dictionary<string, string>(); expected["sonar.property1"] = "value1"; expected["sonar.property2"] = "value2"; expected["sonar.cs.msbuild.testProjectPattern"] = SonarProperties.DefaultTestProjectPattern; var actual = ws.GetProperties("foo bar", new TestLogger()); Assert.AreEqual(true, expected.Count == actual.Count && !expected.Except(actual).Any()); }
public override List<ClaimNameInvolvementDto> GetNameNIListForPayment() { //// This method is used to filter and fetch the name involvemnts for the payemnts //// Fetch the name involvements linked with driver and claimants and based on the claim Detail type set the list of valid payee's //// We are using mainly three dictionary to hold the NI's linked with Driver , linked with claimant and not linked claimnt //// if the Transaction source is not payment the return the NI's as per core functionality if (this.ClaimTransactionSource == (short)StaticValues.ClaimTransactionSource.Payment) { Dictionary<Guid, ClaimNameInvolvementDto> linkedClaimants = new Dictionary<Guid, ClaimNameInvolvementDto>(); Dictionary<Guid, ClaimNameInvolvementDto> nonLinkedClaimants = new Dictionary<Guid, ClaimNameInvolvementDto>(); Dictionary<Guid, ClaimNameInvolvementDto> linkedDriverAndVehicles = new Dictionary<Guid, ClaimNameInvolvementDto>(); Dictionary<Guid, ClaimNameInvolvementDto> validClaimNameInvolvements = new Dictionary<Guid, ClaimNameInvolvementDto>(); //// Get all the ClaimNameInvolvements of From Header Dictionary<Guid, ClaimNameInvolvementDto> headerNIs = this.GetClaimHeaderNameInvolvement(this.HeaderDto); Dictionary<Guid, ClaimNameInvolvementDto> claimNameInvolvements = base.GetNameNIListForPayment().ToDictionary(p => p.Data.DataId, p => p); IEnumerable<ClaimNameInvolvementDto> drivers = this.GetNameInvolvemntList(StaticValues.NameInvolvementType.Driver); IEnumerable<ClaimNameInvolvementDto> claimants = this.GetNameInvolvemntList(StaticValues.NameInvolvementType.AdditionalClaimant); ////Get the Claim Detail Id on which current payment is added Guid claimDetailID = (this.HeaderDto.InProgressClaimTransactionHeaders.First().ClaimTransactionGroups.First().Data as ClaimTransactionGroupData).ClaimDetailDataID; ClaimDetailDto claimDetail = this.HeaderDto.ClaimDetails.Where(cd => cd.Data.DataId == claimDetailID).FirstOrDefault(); //// For AD Claim Detail Type if (claimDetail.ClaimDetailData.ClaimDetailTypeCode == AXAClaimConstants.CLAIMDETAILTYPE_AD) { if (drivers != null) { //// Get all the Name Involvement linked with Driver linkedDriverAndVehicles = this.GetNILinkedToDriver(drivers); } if (claimants != null) { //// Get all the Name Involvement linked with All Claimants and store them in NonLinkedClaimants list nonLinkedClaimants = this.GetNonLinkedClaimantForADList(claimants); } headerNIs = headerNIs.Except(nonLinkedClaimants).ToDictionary(p => p.Key , p => p.Value); claimNameInvolvements = claimNameInvolvements.Where(c => c.Value.ClaimNameInvolvementData.NameInvolvementType != (short)StaticValues.NameInvolvementType.AdditionalClaimant).ToDictionary(c => c.Key, c => c.Value); validClaimNameInvolvements = claimNameInvolvements.Except(nonLinkedClaimants).ToDictionary(p => p.Key, p => p.Value); headerNIs = headerNIs.Where(c => c.Value.ClaimNameInvolvementData.NameInvolvementType != (short)StaticValues.NameInvolvementType.AdditionalClaimant).ToDictionary(c => c.Key, c => c.Value); foreach (ClaimNameInvolvementDto cd in linkedDriverAndVehicles.Values) { if (!validClaimNameInvolvements.ContainsKey(cd.Data.DataId)) { validClaimNameInvolvements.Add(cd.Data.DataId, cd); } } foreach (ClaimNameInvolvementDto cd in headerNIs.Values) { if (!validClaimNameInvolvements.ContainsKey(cd.Data.DataId)) { validClaimNameInvolvements.Add(cd.Data.DataId, cd); } } if (validClaimNameInvolvements != null) { //// Filter the NI on which payment is permitted and status is latest validClaimNameInvolvements = validClaimNameInvolvements.Where(ni => (ni.Value.Data as IClaimNameInvolvementData).IsPaymentPermitted.GetValueOrDefault() && (ni.Value.Data as IClaimNameInvolvementData).NameInvolvementMaintenanceStatus == (short)StaticValues.ClaimNameInvolvementMaintenanceStatus.Latest).ToDictionary(p => p.Key, p => p.Value); } } else { //// This Block will be executed for all ClaimDetails except AD if (drivers != null) { //// Get all the Name Involvement linked with Driver linkedDriverAndVehicles = this.GetNILinkedToDriver(drivers); } if (claimants != null) { //// get all the NI's for other claimants nonLinkedClaimants = this.GetNonlinkedClaimantNIList(claimants, claimDetailID); //// get all the NI's of the claimant on which payments is in progress linkedClaimants = this.GetLinkedClaimantNIList(claimants, claimDetailID); } headerNIs = headerNIs.Except(nonLinkedClaimants).ToDictionary(p => p.Key, p => p.Value); headerNIs = headerNIs.Except(linkedDriverAndVehicles).ToDictionary(p => p.Key, p => p.Value); claimNameInvolvements = claimNameInvolvements.Where(c => c.Value.ClaimNameInvolvementData.NameInvolvementType != (short)StaticValues.NameInvolvementType.AdditionalClaimant).ToDictionary(c => c.Key, c => c.Value); validClaimNameInvolvements = claimNameInvolvements.Except(nonLinkedClaimants).ToDictionary(p => p.Key, p => p.Value); validClaimNameInvolvements = validClaimNameInvolvements.Except(linkedDriverAndVehicles).ToDictionary(p => p.Key, p => p.Value); headerNIs = headerNIs.Where(c => c.Value.ClaimNameInvolvementData.NameInvolvementType != (short)StaticValues.NameInvolvementType.AdditionalClaimant).ToDictionary(c => c.Key, c => c.Value); foreach (ClaimNameInvolvementDto cd in linkedClaimants.Values) { if (!validClaimNameInvolvements.ContainsKey(cd.Data.DataId)) { validClaimNameInvolvements.Add(cd.Data.DataId, cd); } } foreach (ClaimNameInvolvementDto cd in headerNIs.Values) { if (!validClaimNameInvolvements.ContainsKey(cd.Data.DataId)) { validClaimNameInvolvements.Add(cd.Data.DataId, cd); } } if (validClaimNameInvolvements != null) { //// Filter the NI on which payment is permitted and status is latest validClaimNameInvolvements = validClaimNameInvolvements.Where(ni => (ni.Value.Data as IClaimNameInvolvementData).IsPaymentPermitted.GetValueOrDefault() && (ni.Value.Data as IClaimNameInvolvementData).NameInvolvementMaintenanceStatus == (short)StaticValues.ClaimNameInvolvementMaintenanceStatus.Latest).ToDictionary(p => p.Key, p => p.Value); } } return validClaimNameInvolvements.Values.ToList(); } else { return base.GetNameNIListForPayment(); } }