Search in sources :

Example 16 with Branding

use of org.candlepin.model.Branding in project candlepin by candlepin.

the class PoolTranslatorTest method verifyOutput.

@Override
@SuppressWarnings("checkstyle:methodlength")
protected void verifyOutput(Pool source, PoolDTO dest, boolean childrenGenerated) {
    if (source != null) {
        assertEquals(source.getId(), dest.getId());
        assertEquals(source.getType().toString(), dest.getType());
        assertEquals(source.getActiveSubscription(), dest.isActiveSubscription());
        assertEquals(source.isCreatedByShare(), dest.isCreatedByShare());
        assertEquals(source.hasSharedAncestor(), dest.hasSharedAncestor());
        assertEquals(source.getQuantity(), dest.getQuantity());
        assertEquals(source.getStartDate(), dest.getStartDate());
        assertEquals(source.getEndDate(), dest.getEndDate());
        assertEquals(source.getAttributes(), dest.getAttributes());
        assertEquals(source.getRestrictedToUsername(), dest.getRestrictedToUsername());
        assertEquals(source.getContractNumber(), dest.getContractNumber());
        assertEquals(source.getAccountNumber(), dest.getAccountNumber());
        assertEquals(source.getOrderNumber(), dest.getOrderNumber());
        assertEquals(source.getConsumed(), dest.getConsumed());
        assertEquals(source.getExported(), dest.getExported());
        assertEquals(source.getShared(), dest.getShared());
        assertEquals(source.getCalculatedAttributes(), dest.getCalculatedAttributes());
        assertEquals(source.getUpstreamPoolId(), dest.getUpstreamPoolId());
        assertEquals(source.getUpstreamEntitlementId(), dest.getUpstreamEntitlementId());
        assertEquals(source.getUpstreamConsumerId(), dest.getUpstreamConsumerId());
        assertEquals(source.getProductName(), dest.getProductName());
        assertEquals(source.getProductId(), dest.getProductId());
        assertEquals(source.getProductAttributes(), dest.getProductAttributes());
        assertEquals(source.getStackId(), dest.getStackId());
        assertEquals(source.isStacked(), dest.isStacked());
        assertEquals(source.isDevelopmentPool(), dest.isDevelopmentPool());
        assertEquals(source.getDerivedProductAttributes(), dest.getDerivedProductAttributes());
        assertEquals(source.getDerivedProductId(), dest.getDerivedProductId());
        assertEquals(source.getDerivedProductName(), dest.getDerivedProductName());
        assertEquals(source.getSourceStackId(), dest.getSourceStackId());
        assertEquals(source.getSubscriptionSubKey(), dest.getSubscriptionSubKey());
        assertEquals(source.getSubscriptionId(), dest.getSubscriptionId());
        if (childrenGenerated) {
            this.ownerTranslatorTest.verifyOutput(source.getOwner(), dest.getOwner(), true);
            this.certificateTranslatorTest.verifyOutput(source.getCertificate(), dest.getCertificate(), true);
            Entitlement sourceSourceEntitlement = source.getSourceEntitlement();
            EntitlementDTO destSourceEntitlement = dest.getSourceEntitlement();
            if (sourceSourceEntitlement != null) {
                assertEquals(sourceSourceEntitlement.getId(), destSourceEntitlement.getId());
            } else {
                assertNull(destSourceEntitlement);
            }
            for (Branding brandingSource : source.getBranding()) {
                for (BrandingDTO brandingDTO : dest.getBranding()) {
                    assertNotNull(brandingDTO);
                    assertNotNull(brandingDTO.getProductId());
                    if (brandingDTO.getProductId().equals(brandingSource.getProductId())) {
                        this.brandingTranslatorTest.verifyOutput(brandingSource, brandingDTO, true);
                    }
                }
            }
            Set<Product> sourceProducts = source.getProvidedProducts();
            Set<PoolDTO.ProvidedProductDTO> productsDTO = dest.getProvidedProducts();
            verifyProductsOutput(sourceProducts, productsDTO);
            Set<Product> sourceDerivedProducts = source.getDerivedProvidedProducts();
            Set<PoolDTO.ProvidedProductDTO> derivedProductsDTO = dest.getDerivedProvidedProducts();
            verifyProductsOutput(sourceDerivedProducts, derivedProductsDTO);
        } else {
            assertNull(dest.getOwner());
            assertNull(dest.getSourceEntitlement());
            assertNull(dest.getBranding());
            assertNull(dest.getProvidedProducts());
            assertNull(dest.getDerivedProvidedProducts());
            assertNull(dest.getCertificate());
        }
    } else {
        assertNull(dest);
    }
}
Also used : ProvidedProduct(org.candlepin.model.ProvidedProduct) Product(org.candlepin.model.Product) Entitlement(org.candlepin.model.Entitlement) Branding(org.candlepin.model.Branding)

Example 17 with Branding

use of org.candlepin.model.Branding in project candlepin by candlepin.

the class BrandingTranslatorTest method initSourceObject.

@Override
protected Branding initSourceObject() {
    Branding source = new Branding();
    source.setProductId("test-id");
    source.setProductId("test-product-id");
    source.setName("test-name");
    source.setType("test-type");
    source.setCreated(new Date());
    source.setUpdated(new Date());
    return source;
}
Also used : Branding(org.candlepin.model.Branding) Date(java.util.Date)

Example 18 with Branding

use of org.candlepin.model.Branding in project candlepin by candlepin.

the class BrandingTranslatorTest method initSourceObject.

@Override
protected Branding initSourceObject() {
    Branding source = new Branding();
    source.setProductId("test-product-id");
    source.setName("test-name");
    source.setType("test-type");
    return source;
}
Also used : Branding(org.candlepin.model.Branding)

Example 19 with Branding

use of org.candlepin.model.Branding in project candlepin by candlepin.

the class EntitlementImporter method importObject.

public Subscription importObject(ObjectMapper mapper, Reader reader, Owner owner, Map<String, ProductDTO> productsById, String consumerUuid, Meta meta) throws IOException, SyncDataFormatException {
    EntitlementDTO entitlementDTO = mapper.readValue(reader, EntitlementDTO.class);
    Entitlement entitlement = new Entitlement();
    populateEntity(entitlement, entitlementDTO);
    Subscription subscription = new Subscription();
    log.debug("Building subscription for owner: {}", owner);
    log.debug("Using pool from entitlement: {}", entitlement.getPool());
    // Now that we no longer store Subscriptions in the on-site database, we need to
    // manually give the subscription a downstream ID. Note that this may later be
    // overwritten by reconciliation code if it determines this Subscription
    // should replace and existing one.
    subscription.setId(Util.generateDbUUID());
    subscription.setUpstreamPoolId(entitlement.getPool().getId());
    subscription.setUpstreamEntitlementId(entitlement.getId());
    subscription.setUpstreamConsumerId(consumerUuid);
    subscription.setOwner(owner);
    subscription.setStartDate(entitlement.getStartDate());
    subscription.setEndDate(entitlement.getEndDate());
    subscription.setAccountNumber(entitlement.getPool().getAccountNumber());
    subscription.setContractNumber(entitlement.getPool().getContractNumber());
    subscription.setOrderNumber(entitlement.getPool().getOrderNumber());
    subscription.setQuantity(entitlement.getQuantity().longValue());
    for (Branding b : entitlement.getPool().getBranding()) {
        subscription.getBranding().add(new Branding(b.getProductId(), b.getType(), b.getName()));
    }
    String cdnLabel = meta.getCdnLabel();
    if (!StringUtils.isBlank(cdnLabel)) {
        Cdn cdn = cdnCurator.lookupByLabel(cdnLabel);
        if (cdn != null) {
            subscription.setCdn(cdn);
        }
    }
    ProductDTO productDTO = this.findProduct(productsById, entitlement.getPool().getProductId());
    subscription.setProduct(this.translator.translate(productDTO, ProductData.class));
    // Add any sub product data to the subscription.
    if (entitlement.getPool().getDerivedProductId() != null) {
        productDTO = this.findProduct(productsById, entitlement.getPool().getDerivedProductId());
        subscription.setDerivedProduct(this.translator.translate(productDTO, ProductData.class));
    }
    associateProvidedProducts(productsById, entitlement, subscription);
    Set<EntitlementCertificate> certs = entitlement.getCertificates();
    // subscriptions have one cert
    int entcnt = 0;
    for (EntitlementCertificate cert : certs) {
        ++entcnt;
        CertificateSerial cs = new CertificateSerial();
        cs.setCollected(cert.getSerial().isCollected());
        cs.setExpiration(cert.getSerial().getExpiration());
        cs.setUpdated(cert.getSerial().getUpdated());
        cs.setCreated(cert.getSerial().getCreated());
        SubscriptionsCertificate sc = new SubscriptionsCertificate();
        sc.setKey(cert.getKey());
        sc.setCertAsBytes(cert.getCertAsBytes());
        sc.setSerial(cs);
        subscription.setCertificate(sc);
    }
    if (entcnt > 1) {
        log.error("More than one entitlement cert found for subscription");
    }
    return subscription;
}
Also used : ProductData(org.candlepin.model.dto.ProductData) EntitlementCertificate(org.candlepin.model.EntitlementCertificate) CertificateSerial(org.candlepin.model.CertificateSerial) Branding(org.candlepin.model.Branding) Cdn(org.candlepin.model.Cdn) EntitlementDTO(org.candlepin.dto.manifest.v1.EntitlementDTO) SubscriptionsCertificate(org.candlepin.model.SubscriptionsCertificate) Entitlement(org.candlepin.model.Entitlement) Subscription(org.candlepin.model.dto.Subscription) ProductDTO(org.candlepin.dto.manifest.v1.ProductDTO)

Example 20 with Branding

use of org.candlepin.model.Branding in project candlepin by candlepin.

the class EntitlementImporter method populateEntity.

/**
 * Populates the specified entity with data from the provided DTO.
 *
 * @param entity
 *  The entity instance to populate
 *
 * @param dto
 *  The DTO containing the data with which to populate the entity
 *
 * @throws IllegalArgumentException
 *  if either entity or dto are null
 */
@SuppressWarnings("checkstyle:methodlength")
private void populateEntity(Entitlement entity, EntitlementDTO dto) {
    if (entity == null) {
        throw new IllegalArgumentException("the entitlement model entity is null");
    }
    if (dto == null) {
        throw new IllegalArgumentException("the entitlement dto is null");
    }
    if (dto.getId() != null) {
        entity.setId(dto.getId());
    }
    if (dto.getQuantity() != null) {
        entity.setQuantity(dto.getQuantity());
    }
    if (dto.getUpdated() != null) {
        entity.setUpdated(dto.getUpdated());
    }
    if (dto.getCreated() != null) {
        entity.setCreated(dto.getCreated());
    }
    if (dto.getStartDate() != null) {
        entity.setStartDate(dto.getStartDate());
    }
    if (dto.getEndDate() != null) {
        entity.setEndDate(dto.getEndDate());
    }
    if (dto.getPool() != null) {
        PoolDTO poolDTO = dto.getPool();
        Pool poolEntity = new Pool();
        if (poolDTO.getId() != null) {
            poolEntity.setId(poolDTO.getId());
        }
        if (poolDTO.getQuantity() != null) {
            poolEntity.setQuantity(poolDTO.getQuantity());
        }
        if (poolDTO.isActiveSubscription() != null) {
            poolEntity.setActiveSubscription(poolDTO.isActiveSubscription());
        }
        if (poolDTO.isCreatedByShare() != null) {
            poolEntity.setCreatedByShare(poolDTO.isCreatedByShare());
        }
        if (poolDTO.hasSharedAncestor() != null) {
            poolEntity.setHasSharedAncestor(poolDTO.hasSharedAncestor());
        }
        if (poolDTO.getRestrictedToUsername() != null) {
            poolEntity.setRestrictedToUsername(poolDTO.getRestrictedToUsername());
        }
        if (poolDTO.getConsumed() != null) {
            poolEntity.setConsumed(poolDTO.getConsumed());
        }
        if (poolDTO.getExported() != null) {
            poolEntity.setExported(poolDTO.getExported());
        }
        if (poolDTO.getShared() != null) {
            poolEntity.setShared(poolDTO.getShared());
        }
        if (poolDTO.getStackId() != null && poolDTO.getSourceStackId() != null) {
            SourceStack sourceStack = new SourceStack();
            sourceStack.setId(poolDTO.getStackId());
            sourceStack.setSourceStackId(poolDTO.getSourceStackId());
            poolEntity.setSourceStack(sourceStack);
        }
        if (poolDTO.getProductId() != null) {
            poolEntity.setProductId(poolDTO.getProductId());
        }
        if (poolDTO.getDerivedProductId() != null) {
            poolEntity.setDerivedProductId(poolDTO.getDerivedProductId());
        }
        if (poolDTO.getStartDate() != null) {
            poolEntity.setStartDate(poolDTO.getStartDate());
        }
        if (poolDTO.getEndDate() != null) {
            poolEntity.setEndDate(poolDTO.getEndDate());
        }
        if (poolDTO.getCreated() != null) {
            poolEntity.setCreated(poolDTO.getCreated());
        }
        if (poolDTO.getUpdated() != null) {
            poolEntity.setUpdated(poolDTO.getUpdated());
        }
        if (poolDTO.getAccountNumber() != null) {
            poolEntity.setAccountNumber(poolDTO.getAccountNumber());
        }
        if (poolDTO.getOrderNumber() != null) {
            poolEntity.setOrderNumber(poolDTO.getOrderNumber());
        }
        if (poolDTO.getContractNumber() != null) {
            poolEntity.setContractNumber(poolDTO.getContractNumber());
        }
        if (poolDTO.getOwner() != null) {
            Owner ownerEntity = new Owner();
            populateEntity(ownerEntity, poolDTO.getOwner());
            poolEntity.setOwner(ownerEntity);
        }
        if (poolDTO.getUpstreamPoolId() != null) {
            poolEntity.setUpstreamPoolId(poolDTO.getUpstreamPoolId());
        }
        if (poolDTO.getUpstreamConsumerId() != null) {
            poolEntity.setUpstreamConsumerId(poolDTO.getUpstreamConsumerId());
        }
        if (poolDTO.getUpstreamEntitlementId() != null) {
            poolEntity.setUpstreamEntitlementId(poolDTO.getUpstreamEntitlementId());
        }
        if (poolDTO.getSourceEntitlement() != null) {
            EntitlementDTO sourceEntitlementDTO = poolDTO.getSourceEntitlement();
            poolEntity.setSourceEntitlement(findEntitlement(sourceEntitlementDTO.getId()));
        }
        if (poolDTO.getSubscriptionSubKey() != null) {
            poolEntity.setSubscriptionSubKey(poolDTO.getSubscriptionSubKey());
        }
        if (poolDTO.getSubscriptionId() != null) {
            poolEntity.setSubscriptionId(poolDTO.getSubscriptionId());
        }
        if (poolDTO.getAttributes() != null) {
            if (poolDTO.getAttributes().isEmpty()) {
                poolEntity.setAttributes(Collections.emptyMap());
            } else {
                poolEntity.setAttributes(poolDTO.getAttributes());
            }
        }
        if (poolDTO.getCalculatedAttributes() != null) {
            if (poolDTO.getCalculatedAttributes().isEmpty()) {
                poolEntity.setCalculatedAttributes(Collections.emptyMap());
            } else {
                poolEntity.setCalculatedAttributes(poolDTO.getCalculatedAttributes());
            }
        }
        if (poolDTO.getProductAttributes() != null) {
            if (poolDTO.getProductAttributes().isEmpty()) {
                poolEntity.setProductAttributes(Collections.emptyMap());
            } else {
                poolEntity.setProductAttributes(poolDTO.getProductAttributes());
            }
        }
        if (poolDTO.getDerivedProductAttributes() != null) {
            if (poolDTO.getDerivedProductAttributes().isEmpty()) {
                poolEntity.setDerivedProductAttributes(Collections.emptyMap());
            } else {
                poolEntity.setDerivedProductAttributes(poolDTO.getDerivedProductAttributes());
            }
        }
        if (poolDTO.getBranding() != null) {
            if (poolDTO.getBranding().isEmpty()) {
                poolEntity.setBranding(Collections.emptySet());
            } else {
                Set<Branding> branding = new HashSet<>();
                for (BrandingDTO brandingDTO : poolDTO.getBranding()) {
                    if (brandingDTO != null) {
                        Branding brandingEntity = new Branding(brandingDTO.getProductId(), brandingDTO.getType(), brandingDTO.getName());
                        brandingEntity.setId(brandingDTO.getId());
                        brandingEntity.setCreated(brandingDTO.getCreated());
                        brandingEntity.setUpdated(brandingDTO.getUpdated());
                        branding.add(brandingEntity);
                    }
                }
                poolEntity.setBranding(branding);
            }
        }
        if (poolDTO.getProvidedProducts() != null) {
            if (poolDTO.getProvidedProducts().isEmpty()) {
                poolEntity.setProvidedProductDtos(Collections.emptySet());
            } else {
                Set<ProvidedProduct> providedProducts = new HashSet<>();
                for (PoolDTO.ProvidedProductDTO ppDTO : poolDTO.getProvidedProducts()) {
                    if (ppDTO != null) {
                        ProvidedProduct providedProduct = new ProvidedProduct();
                        providedProduct.setProductId(ppDTO.getProductId());
                        providedProduct.setProductName(ppDTO.getProductName());
                        providedProducts.add(providedProduct);
                    }
                }
                poolEntity.setProvidedProductDtos(providedProducts);
            }
        }
        if (poolDTO.getDerivedProvidedProducts() != null) {
            if (poolDTO.getDerivedProvidedProducts().isEmpty()) {
                poolEntity.setDerivedProvidedProductDtos(Collections.emptySet());
            } else {
                Set<ProvidedProduct> derivedProvidedProducts = new HashSet<>();
                for (PoolDTO.ProvidedProductDTO dppDTO : poolDTO.getDerivedProvidedProducts()) {
                    if (dppDTO != null) {
                        ProvidedProduct derivedProvidedProduct = new ProvidedProduct();
                        derivedProvidedProduct.setProductId(dppDTO.getProductId());
                        derivedProvidedProduct.setProductName(dppDTO.getProductName());
                        derivedProvidedProducts.add(derivedProvidedProduct);
                    }
                }
                poolEntity.setDerivedProvidedProductDtos(derivedProvidedProducts);
            }
        }
        entity.setPool(poolEntity);
    }
    if (dto.getCertificates() != null) {
        if (dto.getCertificates().isEmpty()) {
            entity.setCertificates(Collections.emptySet());
        } else {
            Set<EntitlementCertificate> entityCerts = new HashSet<>();
            for (CertificateDTO dtoCert : dto.getCertificates()) {
                if (dtoCert != null) {
                    EntitlementCertificate entityCert = new EntitlementCertificate();
                    entityCert.setId(dtoCert.getId());
                    entityCert.setKey(dtoCert.getKey());
                    entityCert.setCert(dtoCert.getCert());
                    entityCert.setCreated(dtoCert.getCreated());
                    entityCert.setUpdated(dtoCert.getUpdated());
                    if (dtoCert.getSerial() != null) {
                        CertificateSerialDTO dtoSerial = dtoCert.getSerial();
                        CertificateSerial entitySerial = new CertificateSerial();
                        entitySerial.setId(dtoSerial.getId());
                        entitySerial.setCollected(dtoSerial.isCollected());
                        entitySerial.setExpiration(dtoSerial.getExpiration());
                        entitySerial.setRevoked(dtoSerial.isRevoked());
                        entitySerial.setSerial(dtoSerial.getSerial() != null ? dtoSerial.getSerial().longValueExact() : null);
                        entitySerial.setCreated(dtoSerial.getCreated());
                        entitySerial.setUpdated(dtoSerial.getUpdated());
                        entityCert.setSerial(entitySerial);
                    }
                    entityCerts.add(entityCert);
                }
            }
            entity.setCertificates(entityCerts);
        }
    }
}
Also used : Owner(org.candlepin.model.Owner) EntitlementCertificate(org.candlepin.model.EntitlementCertificate) CertificateSerialDTO(org.candlepin.dto.manifest.v1.CertificateSerialDTO) PoolDTO(org.candlepin.dto.manifest.v1.PoolDTO) CertificateSerial(org.candlepin.model.CertificateSerial) Branding(org.candlepin.model.Branding) ProvidedProduct(org.candlepin.model.ProvidedProduct) CertificateDTO(org.candlepin.dto.manifest.v1.CertificateDTO) EntitlementDTO(org.candlepin.dto.manifest.v1.EntitlementDTO) BrandingDTO(org.candlepin.dto.manifest.v1.BrandingDTO) SourceStack(org.candlepin.model.SourceStack) Pool(org.candlepin.model.Pool) HashSet(java.util.HashSet)

Aggregations

Branding (org.candlepin.model.Branding)26 Pool (org.candlepin.model.Pool)15 Product (org.candlepin.model.Product)14 HashSet (java.util.HashSet)9 Entitlement (org.candlepin.model.Entitlement)9 SourceSubscription (org.candlepin.model.SourceSubscription)8 Test (org.junit.Test)7 Owner (org.candlepin.model.Owner)6 Date (java.util.Date)5 Consumer (org.candlepin.model.Consumer)5 ProvidedProduct (org.candlepin.model.ProvidedProduct)5 SubscriptionsCertificate (org.candlepin.model.SubscriptionsCertificate)5 CertificateSerial (org.candlepin.model.CertificateSerial)4 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 SourceStack (org.candlepin.model.SourceStack)3 ProductData (org.candlepin.model.dto.ProductData)3 Subscription (org.candlepin.model.dto.Subscription)3 LinkedList (java.util.LinkedList)2 EntitlementDTO (org.candlepin.dto.manifest.v1.EntitlementDTO)2