package me.chanjar.weixin.cp.api; import com.google.inject.Inject; import me.chanjar.weixin.common.api.WxConsts; import me.chanjar.weixin.common.bean.result.WxMediaUploadResult; import me.chanjar.weixin.common.exception.WxErrorException; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Guice; import org.testng.annotations.Test; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; /** * 测试多媒体文件上传下载 * @author Daniel Qian * */ //@Test(groups="mediaAPI", dependsOnGroups="baseAPI") @Test @Guice(modules = ApiTestModule.class) public class WxCpMediaAPITest { @Inject protected WxCpServiceImpl wxService; private List<String> media_ids = new ArrayList<String>(); @Test(dataProvider="uploadMedia") public void testUploadMedia(String mediaType, String fileType, String fileName) throws WxErrorException, IOException { InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName); WxMediaUploadResult res = wxService.mediaUpload(mediaType, fileType, inputStream); Assert.assertNotNull(res.getType()); Assert.assertNotNull(res.getCreatedAt()); Assert.assertTrue(res.getMediaId() != null || res.getThumbMediaId() != null); if (res.getMediaId() != null) { media_ids.add(res.getMediaId()); } if (res.getThumbMediaId() != null) { media_ids.add(res.getThumbMediaId()); } } @DataProvider public Object[][] uploadMedia() { return new Object[][] { new Object[] { WxConsts.MEDIA_IMAGE, WxConsts.FILE_JPG, "mm.jpeg" }, new Object[] { WxConsts.MEDIA_VOICE, WxConsts.FILE_MP3, "mm.mp3" }, new Object[] { WxConsts.MEDIA_VIDEO, WxConsts.FILE_MP4, "mm.mp4" }, new Object[] { WxConsts.MEDIA_FILE, WxConsts.FILE_JPG, "mm.jpeg" } }; } @Test(dependsOnMethods = { "testUploadMedia" }, dataProvider="downloadMedia") public void testDownloadMedia(String media_id) throws WxErrorException { wxService.mediaDownload(media_id); } @DataProvider public Object[][] downloadMedia() { Object[][] params = new Object[this.media_ids.size()][]; for (int i = 0; i < this.media_ids.size(); i++) { params[i] = new Object[] { this.media_ids.get(i) }; } return params; } }