Search in sources :

Example 6 with ProductDTO

use of org.candlepin.dto.manifest.v1.ProductDTO in project candlepin by candlepin.

the class ProductManagerTest method testAddContentToProduct.

@Test
public void testAddContentToProduct() {
    Owner owner = this.createOwner("test-owner-1", "Test Owner 1");
    Product product = this.createProduct("p1", "prod1");
    Content content = this.createContent("c1", "content1", owner);
    this.ownerProductCurator.mapProductToOwners(product, owner);
    ProductDTO pdto = this.modelTranslator.translate(product, ProductDTO.class);
    ContentDTO cdto = this.modelTranslator.translate(content, ContentDTO.class);
    pdto.addContent(cdto, true);
    Product output = this.productManager.updateProduct(pdto, owner, false);
    assertNotEquals(product, output);
    assertTrue(output.hasContent(content.getId()));
    verifyZeroInteractions(this.mockEntCertGenerator);
}
Also used : ContentDTO(org.candlepin.dto.api.v1.ContentDTO) Owner(org.candlepin.model.Owner) ProductContent(org.candlepin.model.ProductContent) Content(org.candlepin.model.Content) Product(org.candlepin.model.Product) ProductDTO(org.candlepin.dto.api.v1.ProductDTO) Test(org.junit.Test)

Example 7 with ProductDTO

use of org.candlepin.dto.manifest.v1.ProductDTO in project candlepin by candlepin.

the class ProductManagerTest method testRemoveContentFromProductForBadOwner.

@Test(expected = IllegalStateException.class)
public void testRemoveContentFromProductForBadOwner() {
    Owner owner = this.createOwner("test-owner", "Test Owner");
    Owner owner2 = this.createOwner("test-owner-2", "Test Owner");
    Product product = TestUtil.createProduct("p1", "prod1");
    Content content = TestUtil.createContent("c1");
    product.addContent(content, true);
    this.contentCurator.create(content);
    this.productCurator.create(product);
    this.ownerProductCurator.mapProductToOwner(product, owner);
    this.ownerContentCurator.mapContentToOwner(content, owner);
    ProductDTO pdto = this.modelTranslator.translate(product, ProductDTO.class);
    boolean removed = pdto.removeContent(content.getId());
    assertTrue(removed);
    Product output = this.productManager.updateProduct(pdto, owner2, false);
}
Also used : Owner(org.candlepin.model.Owner) ProductContent(org.candlepin.model.ProductContent) Content(org.candlepin.model.Content) Product(org.candlepin.model.Product) ProductDTO(org.candlepin.dto.api.v1.ProductDTO) Test(org.junit.Test)

Example 8 with ProductDTO

use of org.candlepin.dto.manifest.v1.ProductDTO in project candlepin by candlepin.

the class ProductManagerTest method testUpdateProductConvergeWithExisting.

@Test
@Parameters({ "false", "true" })
public void testUpdateProductConvergeWithExisting(boolean regenCerts) {
    Owner owner1 = this.createOwner("test-owner-1", "Test Owner 1");
    Owner owner2 = this.createOwner("test-owner-2", "Test Owner 2");
    Product product1 = this.createProduct("p1", "prod1", owner1);
    Product product2 = this.createProduct("p1", "updated product", owner2);
    ProductDTO update = TestUtil.createProductDTO("p1", "updated product");
    assertTrue(this.ownerProductCurator.isProductMappedToOwner(product1, owner1));
    assertFalse(this.ownerProductCurator.isProductMappedToOwner(product2, owner1));
    assertFalse(this.ownerProductCurator.isProductMappedToOwner(product1, owner2));
    assertTrue(this.ownerProductCurator.isProductMappedToOwner(product2, owner2));
    Product output = this.productManager.updateProduct(update, owner1, regenCerts);
    assertEquals(output.getUuid(), product2.getUuid());
    assertFalse(this.ownerProductCurator.isProductMappedToOwner(product1, owner1));
    assertTrue(this.ownerProductCurator.isProductMappedToOwner(product2, owner1));
    assertFalse(this.ownerProductCurator.isProductMappedToOwner(product1, owner2));
    assertTrue(this.ownerProductCurator.isProductMappedToOwner(product2, owner2));
    if (regenCerts) {
        verify(this.mockEntCertGenerator, times(1)).regenerateCertificatesOf(eq(Arrays.asList(owner1)), anyCollectionOf(Product.class), anyBoolean());
    } else {
        verifyZeroInteractions(this.mockEntCertGenerator);
    }
}
Also used : Owner(org.candlepin.model.Owner) Product(org.candlepin.model.Product) ProductDTO(org.candlepin.dto.api.v1.ProductDTO) Parameters(junitparams.Parameters) Test(org.junit.Test)

Example 9 with ProductDTO

use of org.candlepin.dto.manifest.v1.ProductDTO in project candlepin by candlepin.

the class ProductManagerTest method testCreateProduct.

@Test
public void testCreateProduct() {
    Owner owner = this.createOwner("test-owner", "Test Owner");
    ProductDTO dto = TestUtil.createProductDTO("p1", "prod1");
    assertNull(this.ownerProductCurator.getProductById(owner, "p1"));
    Product output = this.productManager.createProduct(dto, owner);
    assertEquals(output, this.ownerProductCurator.getProductById(owner, "p1"));
}
Also used : Owner(org.candlepin.model.Owner) Product(org.candlepin.model.Product) ProductDTO(org.candlepin.dto.api.v1.ProductDTO) Test(org.junit.Test)

Example 10 with ProductDTO

use of org.candlepin.dto.manifest.v1.ProductDTO in project candlepin by candlepin.

the class ProductManagerTest method testCreateProductThatAlreadyExists.

@Test(expected = IllegalStateException.class)
public void testCreateProductThatAlreadyExists() {
    Owner owner = this.createOwner("test-owner", "Test Owner");
    ProductDTO dto = TestUtil.createProductDTO("p1", "prod1");
    Product output = this.productManager.createProduct(dto, owner);
    assertNotNull(output);
    assertEquals(output, this.ownerProductCurator.getProductById(owner, dto.getId()));
    this.productManager.createProduct(dto, owner);
}
Also used : Owner(org.candlepin.model.Owner) Product(org.candlepin.model.Product) ProductDTO(org.candlepin.dto.api.v1.ProductDTO) Test(org.junit.Test)

Aggregations

ProductDTO (org.candlepin.dto.api.v1.ProductDTO)29 Product (org.candlepin.model.Product)27 Test (org.junit.Test)27 Owner (org.candlepin.model.Owner)25 ProductDTO (org.candlepin.dto.manifest.v1.ProductDTO)12 Content (org.candlepin.model.Content)10 ProductContent (org.candlepin.model.ProductContent)9 ContentDTO (org.candlepin.dto.api.v1.ContentDTO)7 Parameters (junitparams.Parameters)6 ContentDTO (org.candlepin.dto.manifest.v1.ContentDTO)6 Transactional (com.google.inject.persist.Transactional)5 Reader (java.io.Reader)5 StringReader (java.io.StringReader)4 HashSet (java.util.HashSet)4 LinkedList (java.util.LinkedList)4 Subscription (org.candlepin.model.dto.Subscription)4 Consumes (javax.ws.rs.Consumes)3 Path (javax.ws.rs.Path)3 Produces (javax.ws.rs.Produces)3 ForbiddenException (org.candlepin.common.exceptions.ForbiddenException)3