public void CreateResponseFromRequest() { var model = new CriterionFactory(); var request = Create.CriteriaTaxonomyExtendedV2_1_1; var factory = new QualificationApplicationFactory(); var espdUrl = "http://localhost/espd/request/12345"; var response = factory.CreateEspd2_1_1ExtendedResponse( request, Create.EconomicOperatorParty(), new EuComGrowId(Guid.NewGuid()), Guid.NewGuid(), espdUrl ); // Test references Assert.AreEqual(2, response.AdditionalDocumentReferences.Length, "Should have 2 references"); var reference = response.AdditionalDocumentReferences[1]; Assert.AreEqual(request.ID.Value, reference.ID.Value); Assert.AreEqual(request.UUID.Value, reference.UUID.Value); Assert.AreEqual("ESPD_REQUEST", reference.DocumentTypeCode.Value); Assert.AreEqual(request.IssueDate.Value, reference.IssueDate.Value); Assert.AreEqual(request.IssueTime.ToString(), reference.IssueTime.ToString()); // Test Lot responses init Assert.AreEqual(1, response.TenderingCriterionResponses.Length, "Should have one response initialized"); var criterionResponse = response.TenderingCriterionResponses[0]; Assert.AreEqual("0", criterionResponse.ResponseValue?[0].ResponseID.Value, "Lot id should be set to 0"); }
public void CreateResponseFromRequest_WithLots() { var model = new CriterionFactory(); var request = Create.CriteriaTaxonomyExtendedV2_1_1; request.ProcurementProjectLots = new [] { new ProcurementProjectLot() { ID = new Hilma.UBL.UnqualifiedDataTypes.IdentifierType("1"), }, new ProcurementProjectLot() { ID = new Hilma.UBL.UnqualifiedDataTypes.IdentifierType("2"), } }; var factory = new QualificationApplicationFactory(); var espdUrl = "http://localhost/espd/request/12345"; var response = factory.CreateEspd2_1_1ExtendedResponse( request, Create.EconomicOperatorParty(), new EuComGrowId(Guid.NewGuid()), Guid.NewGuid(), espdUrl ); // Test Lot responses no init Assert.AreEqual(0, response.TenderingCriterionResponses.Length, "Should have no responses initialized because of lots"); }
public void TestLotFinalize() { var factory = new QualificationApplicationFactory(); var uuid = Guid.NewGuid(); var lotIds = new [] { "Lot 1", "Lot 2" }; var qar = factory.CreateEspd2_1_1ExtendedRequest( new IdentifierType("TEST-123") { SchemeAgencyID = "TEST" }, new IdentifierType("TEST-REF-111") { SchemeAgencyID = "TEST" }, uuid, lotIds, false); var suitabilityCriterion = new CriterionSpecification().SelectionCriteria.Suitability.First(); qar.TenderingCriteria = qar.TenderingCriteria = new[] { suitabilityCriterion }; qar.FinalizeDocument(lotIds); var assertedCriteria = qar.TenderingCriteria.Last(); Assert.AreEqual(suitabilityCriterion.Name, assertedCriteria.Name); var lotProperties = assertedCriteria.DescendantProperties() .Where(p => p.TypeCode.Equals(CriterionElementType.Requirement) && Equals(p.ValueDataTypeCode, ResponseDataTypeCode.LotIdentifier)).ToArray(); Assert.AreEqual(2, lotProperties.Length, "Should have two lot properties"); Assert.AreEqual("Lot 1", lotProperties[0].ExpectedID.Value); Assert.AreEqual("Lot 2", lotProperties[1].ExpectedID.Value); }
public void TestFinalize_NoSelecedLots() { var factory = new QualificationApplicationFactory(); var uuid = Guid.NewGuid(); var qar = factory.CreateEspd2_1_1ExtendedRequest(new IdentifierType("TEST-123") { SchemeAgencyID = "TEST" }, new IdentifierType("TEST-REF-111") { SchemeAgencyID = "TEST" }, uuid, new string[0], false); var suitabilityCriterion = new CriterionSpecification().SelectionCriteria.Suitability.First(); qar.TenderingCriteria = qar.TenderingCriteria.Union(new[] { suitabilityCriterion }).ToArray(); var firstPropertyId = qar.TenderingCriteria[0].TenderingCriterionPropertyGroups[0].TenderingCriterionProperties[0] .ID.Value; qar.FinalizeDocument(new string[0]); var firstPropertyIdAfter = qar.TenderingCriteria[0].TenderingCriterionPropertyGroups[0] .TenderingCriterionProperties[0].ID.Value; var assertedCriteria = qar.TenderingCriteria.Last(); Assert.AreEqual(suitabilityCriterion.Name, assertedCriteria.Name); Assert.AreNotEqual(firstPropertyId, firstPropertyIdAfter, "Id, should not be the same"); var lotIds = assertedCriteria.DescendantProperties() .Where(p => p.TypeCode.Equals(CriterionElementType.Requirement) && Equals(p.ValueDataTypeCode, ResponseDataTypeCode.LotIdentifier)); Assert.IsTrue(lotIds.All(id => id.ExpectedID == "0"), "Lot id:s should have been set to \"0\""); }
public void TestLotFinalize_SingleLot_QuestionLots_NoValuesSet() { var factory = new QualificationApplicationFactory(); var uuid = Guid.NewGuid(); var lotIds = new[] { "0" }; var qar = factory.CreateEspd2_1_1ExtendedRequest( new IdentifierType("TEST-123") { SchemeAgencyID = "TEST" }, new IdentifierType("TEST-REF-111") { SchemeAgencyID = "TEST" }, uuid, lotIds, false); var referenceCriterion = new CriterionSpecification().SelectionCriteria.References.First(); qar.TenderingCriteria = qar.TenderingCriteria = new[] { referenceCriterion }; qar.FinalizeDocument(lotIds); var assertedCriteria = qar.TenderingCriteria.Last(); Assert.AreEqual(referenceCriterion.Name, assertedCriteria.Name); var lotQuestionProperties = assertedCriteria.DescendantProperties() .Where(p => p.TypeCode.Equals(CriterionElementType.Question) && Equals(p.ValueDataTypeCode, ResponseDataTypeCode.LotIdentifier)).ToArray(); Assert.AreEqual(1, lotQuestionProperties.Length, "Should have one question lot property"); Assert.IsNull(lotQuestionProperties[0].ExpectedID, "lotQuestionProperties[0].ExpectedID == null"); }
public void TestSelfContained() { var factory = new QualificationApplicationFactory(); var uuid = Guid.NewGuid(); var qar = factory.CreateEspd2_1_1ExtendedRequest(new IdentifierType("TEST-123") { SchemeAgencyID = "TEST" }, new IdentifierType("TEST-REF-111") { SchemeAgencyID = "TEST" }, uuid, new string[0], false); var validationResults = new List <ValidationResult>(); var isValid = Validator.TryValidateObject(qar, new ValidationContext(qar), validationResults); foreach (var validationResult in validationResults) { Console.WriteLine(validationResult); } Assert.IsTrue(isValid, "Given notice does not pass validation"); }
public static QualificationApplicationResponse QualificationApplicationResponse(IEnumerable <TenderingCriterion> additionalCriteria = null) { var request = CriteriaTaxonomyExtendedV2_1_1; request.AdditionalDocumentReferences = new AdditionalDocumentReference[] { new AdditionalDocumentReference { ID = new IdentifierType { Value = "2020/S 100-000001", SchemeAgencyID = "EU-COM-OP" }, DocumentTypeCode = new EuComGrowCodeType { ListID = "DocRefContentType", ListAgencyID = "EU-COM-GROW", ListVersionID = "2.1.1", Value = "TED_CN" }, Attachment = new Attachment { ExternalReference = new ExternalReference { URI = new IdentifierType { Value = "http://ted.europa.eu" }, FileName = "Hankinta X", Description = new[] { "Hankinta X", "0000/S 000-000000", } } } } }; if (additionalCriteria != null) { request.TenderingCriteria = request.TenderingCriteria.Union(additionalCriteria).ToArray(); } var factory = new QualificationApplicationFactory(); var espdUrl = "http://localhost/espd/request/12345"; var response = factory.CreateEspd2_1_1ExtendedResponse( request, EconomicOperatorParty(), new EuComGrowId(Guid.NewGuid()), Guid.NewGuid(), espdUrl ); var evidences = new[] { new Evidence() { ID = EuComGrowId.Random(), Description = new[] { "Evidence stuff" }, DocumentReference = new DocumentReference[] { new DocumentReference() { ID = EuComGrowId.Random(), IssuerParty = new Party() { PartyName = new PartyName() { Name = "Issuer" } } } } } }; response.Evidences = evidences; response.TenderingCriterionResponses = CreateResponses(response).ToArray(); return(response); }