package com.github.chen0040.magento; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import com.github.chen0040.magento.models.Product; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.Test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; /** * Created by xschen on 15/6/2017. */ public class MagentoClientProductMediaUnitTest { private static final Logger logger = LoggerFactory.getLogger(MagentoClientProductMediaUnitTest.class); @Test public void test_get_product_media_list() { String productSku = "B202-SKU"; MagentoClient client = new MagentoClient(Mediator.url); client.loginAsAdmin(Mediator.adminUsername, Mediator.adminPassword); logger.info("media list: \r\n{}", JSON.toJSONString(client.media().getProductMediaList(productSku), SerializerFeature.PrettyFormat)); } @Test public void test_get_product_media_urls() { String productSku = "B202-SKU"; MagentoClient client = new MagentoClient(Mediator.url); client.loginAsAdmin(Mediator.adminUsername, Mediator.adminPassword); logger.info("media absolute urls: \r\n{}", JSON.toJSONString(client.media().getProductMediaAbsoluteUrls(productSku), SerializerFeature.PrettyFormat)); logger.info("media relative urls: \r\n{}", JSON.toJSONString(client.media().getProductMediaRelativeUrls(productSku), SerializerFeature.PrettyFormat)); } @Test public void test_get_product_media_url() { String productSku = "B202-SKU"; MagentoClient client = new MagentoClient(Mediator.url); client.loginAsAdmin(Mediator.adminUsername, Mediator.adminPassword); long entryId = 1L; logger.info("media absoluate url: \r\n{}", JSON.toJSONString(client.media().getProductMediaAbsoluteUrl(productSku, entryId), SerializerFeature.PrettyFormat)); logger.info("media relative url: \r\n{}", JSON.toJSONString(client.media().getProductMediaRelativeUrl(productSku, entryId), SerializerFeature.PrettyFormat)); } @Test public void test_get_product_media() { String productSku = "B202-SKU"; MagentoClient client = new MagentoClient(Mediator.url); client.loginAsAdmin(Mediator.adminUsername, Mediator.adminPassword); long entryId = 1L; logger.info("media: \r\n{}", JSON.toJSONString(client.media().getProductMedia(productSku, entryId), SerializerFeature.PrettyFormat)); } @Test public void test_delete_product_media() { String productSku = "B202-SKU"; MagentoClient client = new MagentoClient(Mediator.url); client.loginAsAdmin(Mediator.adminUsername, Mediator.adminPassword); long entryId = 2L; logger.info("media deleted: \r\n{}", JSON.toJSONString(client.media().deleteProductMedia(productSku, entryId), SerializerFeature.PrettyFormat)); } @Test public void test_upload_image() throws IOException { String productSku = "B202-SKU"; MagentoClient client = new MagentoClient(Mediator.url); client.loginAsAdmin(Mediator.adminUsername, Mediator.adminPassword); String filename = "/m/b/mb01-blue-0.png"; int position = 1; String type = "image/png"; String imageFileName = "new_image.png"; InputStream inputStream = MagentoClientProductUnitTest.class.getClassLoader().getResourceAsStream("sample.png"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int length; byte[] bytes = new byte[1024]; while((length = inputStream.read(bytes, 0, 1024)) > 0) { baos.write(bytes, 0, length); } bytes = baos.toByteArray(); logger.info("uploaded image id: {}", client.media().uploadProductImage(productSku, position, filename, bytes, type, imageFileName)); } @Test public void test_update_image() throws IOException { String productSku = "B202-SKU"; MagentoClient client = new MagentoClient(Mediator.url); client.loginAsAdmin(Mediator.adminUsername, Mediator.adminPassword); String filename = "/m/b/mb01-blue-0.png"; int position = 1; String type = "image/png"; String imageFileName = "new_image.png"; InputStream inputStream = MagentoClientProductUnitTest.class.getClassLoader().getResourceAsStream("sample.png"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int length; byte[] bytes = new byte[1024]; while((length = inputStream.read(bytes, 0, 1024)) > 0) { baos.write(bytes, 0, length); } bytes = baos.toByteArray(); long entryId = 3L; logger.info("image updated: {}", client.media().updateProductImage(productSku, entryId, position, filename, bytes, type, imageFileName)); } }