Skip to content

Commit

Permalink
test cases for post create company certificate added
Browse files Browse the repository at this point in the history
  • Loading branch information
AnuragNagpure committed Feb 7, 2024
1 parent 1ee2bc2 commit 8074662
Show file tree
Hide file tree
Showing 10 changed files with 9,383 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -333,26 +333,31 @@ private async Task HandleSsiCreationAsync(
await _portalRepositories.SaveAsync().ConfigureAwait(false);
}
/// <inheritdoc />
public async Task CreateCompanyCertificate(CompanyCertificateCreationData data, CancellationToken cancellationToken)
public async Task CreateCompanyCertificate(Guid certificateId, CompanyCertificateCreationData data, CancellationToken cancellationToken)
{

var documentContentType = data.Document.ContentType.ParseMediaTypeId();
documentContentType.CheckDocumentContentType(_settings.CompanyCertificateMediaTypes);

var companyCertificateRepository = _portalRepositories.GetInstance<ICompanyCertificateRepository>();
if (!await companyCertificateRepository.CheckCompanyCertificateType(data.CertificateTypeId).ConfigureAwait(false))
if (await companyCertificateRepository.CheckCompanyCertificateId(certificateId).ConfigureAwait(false))
{
throw new ControllerArgumentException($"{data.CertificateTypeId} is not assigned to a certificate");
throw new ControllerArgumentException($"{certificateId} already exists");
}
await HandleCompanyCertificateCreationAsync(data.CertificateTypeId, data.Document, documentContentType, companyCertificateRepository, data.ExpiryDate, cancellationToken).ConfigureAwait(false);

if (!await companyCertificateRepository.CheckCompanyCertificateType(data.CertificateType).ConfigureAwait(false))
{
throw new ControllerArgumentException($"{data.CertificateType} is not assigned to a certificate");
}
await HandleCompanyCertificateCreationAsync(data.CertificateType, data.Document, documentContentType, companyCertificateRepository, data.ExpiryDate, cancellationToken).ConfigureAwait(false);
}
/// <inheritdoc />
private async Task HandleCompanyCertificateCreationAsync(CompanyCertificateTypeId companyCertificateTypeId, IFormFile document, MediaTypeId mediaTypeId,
ICompanyCertificateRepository companyCertificateRepository, DateTimeOffset? expiryDate, CancellationToken cancellationToken)
{
var (documentContent, hash) = await document.GetContentAndHash(cancellationToken).ConfigureAwait(false);
var doc = _portalRepositories.GetInstance<IDocumentRepository>().CreateDocument(document.FileName, documentContent,
hash, mediaTypeId, DocumentTypeId.Company_Certificate, x =>
hash, mediaTypeId, DocumentTypeId.COMPANY_CERTIFICATE, x =>
{
x.CompanyUserId = _identityData.IdentityId;
x.DocumentStatusId = DocumentStatusId.PENDING;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,5 @@ public interface ICompanyDataBusinessLogic
Task RejectCredential(Guid credentialId);

IAsyncEnumerable<VerifiedCredentialTypeId> GetCertificateTypes();
Task CreateCompanyCertificate(CompanyCertificateCreationData data, CancellationToken cancellationToken);
Task CreateCompanyCertificate(Guid certificateId, CompanyCertificateCreationData data, CancellationToken cancellationToken);
}
Original file line number Diff line number Diff line change
Expand Up @@ -283,12 +283,12 @@ public async Task<NoContentResult> CreateSsiCertificate([FromForm] SsiCertificat
[Authorize(Roles = "upload_certificates")]
[Authorize(Policy = PolicyTypes.ValidIdentity)]
[Authorize(Policy = PolicyTypes.ValidCompany)]
[Route("companyCertificate")]
[Route("companyCertificate/{certificateId}/document")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status400BadRequest)]
public async Task<NoContentResult> CreateCompanyCertificate([FromForm] CompanyCertificateCreationData data, CancellationToken cancellationToken)
public async Task<NoContentResult> CreateCompanyCertificate([FromRoute] Guid certificateId, [FromForm] CompanyCertificateCreationData data, CancellationToken cancellationToken)
{
await _logic.CreateCompanyCertificate(data, cancellationToken).ConfigureAwait(false);
await _logic.CreateCompanyCertificate(certificateId, data, cancellationToken).ConfigureAwait(false);
return NoContent();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ namespace Org.Eclipse.TractusX.Portal.Backend.Administration.Service.Models;

public record CompanyCertificateCreationData
(
CompanyCertificateTypeId CertificateTypeId,
CompanyCertificateTypeId CertificateType,
IFormFile Document,
DateTimeOffset? ExpiryDate
);
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ public Task<bool> CheckCompanyCertificateType(CompanyCertificateTypeId certifica
.AnyAsync(x =>
x.Id == certificateTypeId);

public Task<bool> CheckCompanyCertificateId(Guid id) =>
_context.CompanyCertificates
.AnyAsync(x =>
x.Id == id);

/// <inheritdoc />
public CompanyCertificate CreateCompanyCertificateData(Guid companyId, CompanyCertificateTypeId companyCertificateTypeId, Guid docId, DateTimeOffset? expiryDate, Action<CompanyCertificate>? setOptionalFields)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@ public interface ICompanyCertificateRepository
/// <returns><c>true</c> if the tpye is a certificate, otherwise <c>false</c></returns>
Task<bool> CheckCompanyCertificateType(CompanyCertificateTypeId CertificateTypeId);

/// <summary>
/// Checks whether the given CertificateId exist or not<see cref="CompanyCertificate"/> Certificate
/// </summary>
/// <param name="Id">Id of the credentialTypeId</param>
/// <returns><c>true</c> if the tpye is a certificate, otherwise <c>false</c></returns>
Task<bool> CheckCompanyCertificateId(Guid Id);

/// <summary>
/// Creates the company certificate data
/// </summary>
Expand Down
Loading

0 comments on commit 8074662

Please sign in to comment.