public void Converts_document_successfully() { //Arrange const string subject = "Subject"; const string message = "Message"; const FileType fileType = FileType.Pdf; var documentBytes = new byte[] { 0x21, 0x22 }; var source = new Document( subject, message, fileType, documentBytes ); var expected = new directdocument { title = subject, description = message, href = source.FileName, mime = "application/pdf" }; //Act var result = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, result, out differences); Assert.Empty(differences); }
public void PrintReturnRecipientFromNorwegianAddress() { //Arrange var source = new PrintReturnRecipient( "Name", new NorwegianAddress("0001", "Oslo", "Addr1", "Addr2", "Addr3")); var expectedDto = new printrecipient { name = source.Name, Item = new norwegianaddress { zipcode = ((NorwegianAddress)source.Address).PostalCode, city = ((NorwegianAddress)source.Address).City, addressline1 = source.Address.AddressLine1, addressline2 = source.Address.AddressLine2, addressline3 = source.Address.AddressLine3 } }; //Act var actualDto = DataTransferObjectConverter.ToDataTransferObject(source); //Assert Comparator.AssertEqual(expectedDto, actualDto); }
public void Converts_signer_with_notifications_using_lookup_successfully() { //Arrange var source = new Signer( new PersonalIdentificationNumber("11111111111"), new NotificationsUsingLookup() ); var expected = new portalsigner { Item = ((PersonalIdentificationNumber)source.Identifier).Value, Item1 = new notificationsusinglookup { email = new enabled() }, onbehalfof = signingonbehalfof.SELF, onbehalfofSpecified = true, }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, actual, out differences); Assert.Empty(differences); }
private static JobStatusChanged ParseResponseToPortalJobStatusChangeResponse(string requestContent, DateTime nextPermittedPollTime) { var deserialized = SerializeUtility.Deserialize <portalsignaturejobstatuschangeresponse>(requestContent); var portalJobStatusChangeResponse = DataTransferObjectConverter.FromDataTransferObject(deserialized, nextPermittedPollTime); return(portalJobStatusChangeResponse); }
public void ForeignAddress() { //Arrange var source = new ForeignAddress( CountryIdentifier.Countrycode, "SE", "Adresselinje1", "Adresselinje2", "Adresselinje3", "Adresselinje4" ); var expectedDto = new foreignaddress { ItemElementName = ItemChoiceType2.countrycode, Item = "SE", addressline1 = source.AddressLine1, addressline2 = source.AddressLine2, addressline3 = source.AddressLine3, addressline4 = source.Addressline4 }; //Act var actualDto = DataTransferObjectConverter.ToDataTransferObject(source); //Assert Comparator.AssertEqual(expectedDto, actualDto); }
public void Converts_signer_with_signer_identifier_successfully() { //Arrange const string customIdentifier = "custom-identifier"; var source = new Signer(new CustomIdentifier(customIdentifier)) { OnBehalfOf = OnBehalfOf.Other }; var expected = new directsigner { ItemElementName = ItemChoiceType.signeridentifier, Item = customIdentifier, onbehalfofSpecified = true, onbehalfof = signingonbehalfof.OTHER }; //Act var result = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, result, out differences); Assert.Empty(differences); }
public void SmsNotification() { //Arrange var atTimes = new List <DateTime> { DateTime.Now, DateTime.Now.AddHours(3) }; var afterHours = new List <int> { 4, 5 }; var source = new SmsNotification(); source.NotifyAfterHours.AddRange(afterHours); source.NotifyAtTimes.AddRange(atTimes); var expectedDto = new smsnotification { afterhours = afterHours.ToArray(), at = atTimes.Select(a => new listedtime { timeSpecified = true, time = a }).ToArray() }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert Comparator.AssertEqual(expectedDto, actual); }
public async Task <IIdentificationResult> IdentifyAsync(IIdentification identification) { _logger.LogDebug($"Outgoing identification request: {identification}"); var uri = new Uri("identification", UriKind.Relative); var identifyResponse = RequestHelper.PostIdentification <identificationresult>(identification, uri); if (identifyResponse.IsFaulted) { var exception = identifyResponse.Exception?.InnerException; _logger.LogWarning($"Identification failed, {exception}"); if (identifyResponse.Exception != null) { throw identifyResponse.Exception.InnerException; } } var identificationResultDataTransferObject = await identifyResponse.ConfigureAwait(false); var identificationResult = DataTransferObjectConverter.FromDataTransferObject(identificationResultDataTransferObject); _logger.LogDebug($"Response received for identification to recipient, ResultType '{identificationResult.ResultType}', Data '{identificationResult.Data}'."); return(identificationResult); }
public void Converts_signer_identified_by_sms() { //Arrange var source = new Signer( new ContactInformation { Sms = new Sms("11111111") } ); var expected = new portalsigner { Item = new enabled(), Item1 = new notifications { Items = new object[] { new sms { number = "11111111" } } }, onbehalfof = signingonbehalfof.SELF, onbehalfofSpecified = true, }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, actual, out differences); Assert.Empty(differences); }
public void Converts_signer_with_contact_information_identifier() { //Arrange var source = new Signer(new ContactInformation { Email = new Email("*****@*****.**") }); var expected = new portalsigner { Item = new enabled(), Item1 = new notifications { Items = new object[] { new email { address = ((ContactInformation)source.Identifier).Email.Address } } }, onbehalfof = signingonbehalfof.SELF, onbehalfofSpecified = true, }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, actual, out differences); Assert.Empty(differences); }
public void Converts_portal_document_successfully() { //Arrange var source = new Document("subject", "message", FileType.Pdf, new byte[] { 0xb2, 0xb3 }) { NonsensitiveTitle = "NonsensitiveTitle" }; var expected = new portaldocument { title = source.Title, nonsensitivetitle = source.NonsensitiveTitle, description = source.Message, href = source.FileName, mime = source.MimeType }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, actual, out differences); Assert.Empty(differences); }
public void Converts_portal_job_with_polling_queue_successfully() { //Arrange var document = DomainUtility.GetPortalDocument(); var signers = DomainUtility.GetSigners(2); var reference = "reference"; var custompollingqueue = "CustomPollingQueue"; var sender = new Sender(BringPublicOrganizationNumber, new PollingQueue(custompollingqueue)); var source = new Job(document, signers, reference, sender); var expected = new portalsignaturejobrequest { reference = reference, pollingqueue = custompollingqueue }; //Act var result = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, result, out differences); Assert.Empty(differences); }
/// <summary> /// Get the current status for the given <see cref="StatusReference" />, which references the status for a specific /// job. /// When processing of the status is complete (e.g. retrieving <see cref="GetPades(PadesReference)">PAdES</see> and/or /// <see cref="GetXades(XadesReference)">XAdES</see> documents for a <see cref="JobStatus.CompletedSuccessfully" /> job /// where all the signers have <see cref="SignatureStatus.Signed" /> their documents), the returned status /// must be confirmed via <see cref="Confirm(ConfirmationReference)" />. /// </summary> /// <param name="statusReference">The reference to the status of a specific job.</param> /// <returns> /// the <see cref="JobStatusResponse" /> for the job referenced by the given <see cref="StatusReference" />, /// never null. /// </returns> public async Task <JobStatusResponse> GetStatus(StatusReference statusReference) { var request = new HttpRequestMessage { RequestUri = statusReference.Url(), Method = HttpMethod.Get }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); var requestResult = await HttpClient.SendAsync(request).ConfigureAwait(false); var requestContent = requestResult.Content.ReadAsStringAsync().Result; switch (requestResult.StatusCode) { case HttpStatusCode.OK: var nextPermittedPollTime = DateTime.Now; var jobStatusResponse = DataTransferObjectConverter.FromDataTransferObject(SerializeUtility.Deserialize <directsignaturejobstatusresponse>(requestContent), nextPermittedPollTime); _logger.LogDebug($"Requested status for JobId: {jobStatusResponse.JobId}, status was: {jobStatusResponse.Status}."); return(jobStatusResponse); default: throw RequestHelper.HandleGeneralException(requestResult.StatusCode, requestContent); } }
public void Converts_notifications_with_sms_and_email_successfully() { //Arrange var sms = new Sms("99999999"); var email = new Email("*****@*****.**"); var source = new Notifications(sms, email); var expected = new notifications { Items = new object[] { new email { address = email.Address }, new sms { number = sms.Number } } }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, actual, out differences); Assert.Empty(differences); }
public void Converts_error_successfully() { //Arrange var source = new error { errorcode = "errorcode", errormessage = "errormessage", errortype = "errortype" }; var expected = new Error { Code = source.errorcode, Message = source.errormessage, Type = source.errortype }; //Act var actual = DataTransferObjectConverter.FromDataTransferObject(source); //Assert var compartor = new Comparator(); IEnumerable <IDifference> differences; compartor.AreEqual(expected, actual, out differences); Assert.Empty(differences); }
public async Task <ISearchDetailsResult> SearchAsync(string search) { _logger.LogDebug($"Outgoing search request, term: '{search}'."); search = search.RemoveReservedUriCharacters(); var uri = new Uri($"recipients/search/{Uri.EscapeUriString(search)}", UriKind.Relative); if (search.Length < MinimumSearchLength) { var emptyResult = new SearchDetailsResult { PersonDetails = new List <SearchDetails>() }; var taskSource = new TaskCompletionSource <ISearchDetailsResult>(); taskSource.SetResult(emptyResult); return(await taskSource.Task.ConfigureAwait(false)); } var searchDetailsResultDataTransferObject = await RequestHelper.Get <recipients>(uri).ConfigureAwait(false); var searchDetailsResult = DataTransferObjectConverter.FromDataTransferObject(searchDetailsResultDataTransferObject); _logger.LogDebug($"Response received for search with term '{search}' retrieved."); return(searchDetailsResult); }
public void Converts_signer_with_pin_and_notifications_successfully() { //Arrange var source = new Signer( new PersonalIdentificationNumber("11111111111"), new Notifications(new Email("*****@*****.**")) ); var expected = new portalsigner { Item = ((PersonalIdentificationNumber)source.Identifier).Value, Item1 = new notifications { Items = new object[] { new email { address = source.Notifications.Email.Address } } }, onbehalfof = signingonbehalfof.SELF, onbehalfofSpecified = true, }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, actual, out differences); Assert.Empty(differences); }
public void PrintReturnRecipientFromForeignAddress() { //Arrange var source = new PrintReturnRecipient( "Name", new ForeignAddress( CountryIdentifier.Country, "NORGE", "Adresselinje1", "Adresselinje2", "Adresselinje3", "Adresselinje4" )); var expectedDto = new printrecipient { name = source.Name, Item = new foreignaddress { ItemElementName = ItemChoiceType2.country, Item = ((ForeignAddress)source.Address).CountryIdentifierValue, addressline1 = source.Address.AddressLine1, addressline2 = source.Address.AddressLine2, addressline3 = source.Address.AddressLine3, addressline4 = ((ForeignAddress)source.Address).Addressline4 } }; //Act var actualDto = DataTransferObjectConverter.ToDataTransferObject(source); //Assert Comparator.AssertEqual(expectedDto, actualDto); }
private void ThrowNotEmptyResponseError(string responseContent) { var errorDataTransferObject = SerializeUtil.Deserialize <error>(responseContent); var error = DataTransferObjectConverter.FromDataTransferObject(errorDataTransferObject); _logger.LogError("Error occured, check inner Error object for more information.", error); throw new ClientResponseException("Error occured, check inner Error object for more information.", error); }
public void Converts_manifest_with_signature_type_successfully() { //Arrange const string organizationNumberSender = "12345678902"; const string documentSubject = "Subject"; const string documentMessage = "Message"; var pdfDocumentBytes = GetPdfDocumentBytes(); var personalIdentificationNumber = "12345678901"; var expectedMimeType = "application/pdf"; var source = new Manifest( new Sender(organizationNumberSender), new Document(documentSubject, documentMessage, FileType.Pdf, pdfDocumentBytes), new[] { new Signer(new PersonalIdentificationNumber(personalIdentificationNumber)) { SignatureType = SignatureType.AdvancedSignature } } ); var expected = new directsignaturejobmanifest { sender = new sender { organizationnumber = organizationNumberSender }, document = new directdocument { title = documentSubject, description = documentMessage, href = source.Document.FileName, mime = expectedMimeType }, signer = new[] { new directsigner { ItemElementName = ItemChoiceType.personalidentificationnumber, Item = personalIdentificationNumber, signaturetype = signaturetype.ADVANCED_ELECTRONIC_SIGNATURE, signaturetypeSpecified = true, onbehalfof = signingonbehalfof.SELF, onbehalfofSpecified = true } } }; //Act var result = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, result, out differences); Assert.Empty(differences); }
public void PrintIfUnread() { //Arrange DateTime printifunreadafter = DateTime.Now.AddDays(3); PrintDetails printDetails = new PrintDetails( new PrintRecipient( "Name", new NorwegianAddress("0001", "Oslo", "Addr1", "Addr2", "Addr3")), new PrintReturnRecipient( "ReturnName", new NorwegianAddress("0001", "OsloRet", "Addr1Ret", "Addr2Ret", "Addr3Ret"))); var source = new PrintIfUnread(printifunreadafter, printDetails); var sourceAddress = source.PrintDetails.PrintRecipient.Address; var returnAddress = source.PrintDetails.PrintReturnRecipient.Address; var expectedDtoPrintDetails = new printdetails { recipient = new printrecipient { name = source.PrintDetails.PrintRecipient.Name, Item = new norwegianaddress { zipcode = ((NorwegianAddress)sourceAddress).PostalCode, city = ((NorwegianAddress)sourceAddress).City, addressline1 = sourceAddress.AddressLine1, addressline2 = sourceAddress.AddressLine2, addressline3 = sourceAddress.AddressLine3 } }, returnaddress = new printrecipient { name = source.PrintDetails.PrintReturnRecipient.Name, Item = new norwegianaddress { zipcode = ((NorwegianAddress)returnAddress).PostalCode, city = ((NorwegianAddress)returnAddress).City, addressline1 = returnAddress.AddressLine1, addressline2 = returnAddress.AddressLine2, addressline3 = returnAddress.AddressLine3 } } }; var expectedDto = new printifunread { printifunreadafter = printifunreadafter, printdetails = expectedDtoPrintDetails }; //Act var actualDto = DataTransferObjectConverter.ToDataTransferObject(source); //Assert Comparator.AssertEqual(expectedDto, actualDto); Assert.Null(DataTransferObjectConverter.ToDataTransferObject((IPrintIfUnread)null)); }
public void PrintDetails() { //Arrange var source = new PrintDetails( new PrintRecipient( "Name", new NorwegianAddress("0001", "Oslo", "Addr1", "Addr2", "Addr3")), new PrintReturnRecipient( "ReturnName", new NorwegianAddress("0001", "OsloRet", "Addr1Ret", "Addr2Ret", "Addr3Ret"))); List <PrintInstruction> printinstruction = new List <PrintInstruction>(); printinstruction.Add(new PrintInstruction("test", "testing")); source.PrintInstructions = new PrintInstructions(printinstruction); var sourceAddress = source.PrintRecipient.Address; var returnAddress = source.PrintReturnRecipient.Address; var expectedDto = new printdetails { recipient = new printrecipient { name = source.PrintRecipient.Name, Item = new norwegianaddress { zipcode = ((NorwegianAddress)sourceAddress).PostalCode, city = ((NorwegianAddress)sourceAddress).City, addressline1 = sourceAddress.AddressLine1, addressline2 = sourceAddress.AddressLine2, addressline3 = sourceAddress.AddressLine3 } }, returnaddress = new printrecipient { name = source.PrintReturnRecipient.Name, Item = new norwegianaddress { zipcode = ((NorwegianAddress)returnAddress).PostalCode, city = ((NorwegianAddress)returnAddress).City, addressline1 = returnAddress.AddressLine1, addressline2 = returnAddress.AddressLine2, addressline3 = returnAddress.AddressLine3 } }, printinstructions = new printinstruction[] { new printinstruction { key = "test", value = "testing" } } }; //Act var actualDto = DataTransferObjectConverter.ToDataTransferObject(source); //Assert Comparator.AssertEqual(expectedDto, actualDto); Assert.Null(DataTransferObjectConverter.ToDataTransferObject((IPrintDetails)null)); }
public void Converts_manifest_without_availability_successfully() { //Arrange const string organizationNumberSender = "12345678902"; var source = new Manifest(new Sender(organizationNumberSender), DomainUtility.GetPortalDocument(), new List <Signer> { new Signer(new PersonalIdentificationNumber("01043100358"), new NotificationsUsingLookup()), new Signer(new PersonalIdentificationNumber("01043100319"), new NotificationsUsingLookup()) }); var expected = new portalsignaturejobmanifest { sender = new sender { organizationnumber = organizationNumberSender }, document = new portaldocument { title = source.Document.Title, description = source.Document.Message, href = source.Document.FileName, mime = source.Document.MimeType }, signers = new[] { new portalsigner { Item = ((PersonalIdentificationNumber)source.Signers.ElementAt(0).Identifier).Value, Item1 = new notificationsusinglookup { email = new enabled() }, onbehalfof = signingonbehalfof.SELF, onbehalfofSpecified = true, }, new portalsigner { Item = ((PersonalIdentificationNumber)source.Signers.ElementAt(1).Identifier).Value, Item1 = new notificationsusinglookup { email = new enabled() }, onbehalfof = signingonbehalfof.SELF, onbehalfofSpecified = true, } } }; //Act var result = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, result, out differences); Assert.Empty(differences); }
public void Converts_direct_job_status_with_multiple_signers_successfully() { //Arrange var now = DateTime.Now; var source = new directsignaturejobstatusresponse { signaturejobid = 77, reference = null, signaturejobstatus = directsignaturejobstatus.FAILED, status = new[] { new signerstatus { signer = "12345678910", Value = "REJECTED", since = now }, new signerstatus { signer = "10987654321", Value = "SIGNED", since = now } }, xadesurl = new[] { new signerspecificurl { signer = "10987654321", Value = "https://example.com/xades-url" } }, confirmationurl = "https://example.com/confirmation-url" }; var nextPermittedPollTime = DateTime.Now; var expected = new JobStatusResponse( source.signaturejobid, source.reference, JobStatus.Failed, new JobReferences(new Uri("https://example.com/confirmation-url"), null), new List <Signature> { new Signature("12345678910", null, SignatureStatus.Rejected, now), new Signature("10987654321", new XadesReference(new Uri("https://example.com/xades-url")), SignatureStatus.Signed, now) }, nextPermittedPollTime ); //Act var result = DataTransferObjectConverter.FromDataTransferObject(source, nextPermittedPollTime); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, result, out differences); Assert.Empty(differences); }
public void Successful_manifest_to_bytes() { //Arrange var manifest = DomainUtility.GetPortalManifest(); var manifestDataTranferObject = DataTransferObjectConverter.ToDataTransferObject(manifest); var expectedResult = SerializeUtility.Serialize(manifestDataTranferObject); //Act var bytes = manifest.Bytes; var actualResult = Encoding.UTF8.GetString(bytes); //Assert Assert.Equal(expectedResult, actualResult); }
public void ReturnsCorrectDataForIdentification() { //Arrange var identification = new Identification(new RecipientById(IdentificationType.PersonalIdentificationNumber, "00000000000")); //Act var action = new IdentificationAction(identification); var content = action.RequestContent; //Assert var identificationDto = DataTransferObjectConverter.ToDataTransferObject(identification); var expected = SerializeUtil.Serialize(identificationDto); Assert.Equal(expected, content.InnerXml); }
public void IdentificationByOrganizationNumber() { //Arrange var source = new Identification(new RecipientById(IdentificationType.OrganizationNumber, "123456789")); var expectedDto = new identification { ItemElementName = ItemChoiceType.organisationnumber, Item = ((RecipientById)source.DigipostRecipient).Id }; //Act var actualDto = DataTransferObjectConverter.ToDataTransferObject(source); //Assert Comparator.AssertEqual(expectedDto, actualDto); }
public void Converts_signed_direct_job_status_successfully() { //Arrange var now = DateTime.Now; var source = new directsignaturejobstatusresponse { signaturejobid = 77, reference = "senders-reference", signaturejobstatus = directsignaturejobstatus.COMPLETED_SUCCESSFULLY, status = new[] { new signerstatus { signer = "12345678910", Value = "SIGNED", since = now } }, confirmationurl = "http://signatureRoot.digipost.no/confirmation", xadesurl = new[] { new signerspecificurl { signer = "12345678910", Value = "http://signatureRoot.digipost.no/xades" } }, padesurl = "http://signatureRoot.digipost.no/pades" }; var nextPermittedPollTime = DateTime.Now; var expected = new JobStatusResponse( source.signaturejobid, source.reference, JobStatus.CompletedSuccessfully, new JobReferences(new Uri(source.confirmationurl), new Uri(source.padesurl)), new List <Signature> { new Signature("12345678910", new XadesReference(new Uri("http://signatureRoot.digipost.no/xades")), SignatureStatus.Signed, now) }, nextPermittedPollTime ); //Act var result = DataTransferObjectConverter.FromDataTransferObject(source, nextPermittedPollTime); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, result, out differences); Assert.Empty(differences); }
public void InitializesClassAndParentProperties() { //Arrange var businessCertificate = CoreDomainUtility.GetTestCertificate(); var clientConfiguration = CoreDomainUtility.GetClientConfiguration(); var directJob = new Job(DomainUtility.GetDirectDocument(), DomainUtility.GetSigner(), "reference", DomainUtility.GetExitUrls(), CoreDomainUtility.GetSender()); var serializedJob = SerializeUtility.Serialize(DataTransferObjectConverter.ToDataTransferObject(directJob)); var asiceBundle = DirectAsiceGenerator.CreateAsice(directJob, businessCertificate, clientConfiguration); //Act var action = new CreateAction(directJob, asiceBundle); //Assert Assert.Equal(directJob, action.RequestContent); Assert.Equal(serializedJob, action.RequestContentXml.InnerXml); Assert.Null(action.MultipartFormDataContent); }
public void Converts_notifications_using_lookup_successfully() { //Arrange var source = new NotificationsUsingLookup { SmsIfAvailable = true }; var expected = new notificationsusinglookup { email = new enabled(), sms = new enabled() }; //Act var actual = DataTransferObjectConverter.ToDataTransferObject(source); //Assert var comparator = new Comparator(); IEnumerable <IDifference> differences; comparator.AreEqual(expected, actual, out differences); Assert.Empty(differences); }