diff --git a/src/main/java/com/afrozaar/wordpress/wpapi/v2/util/FilenameWrapperByteArrayResource.java b/src/main/java/com/afrozaar/wordpress/wpapi/v2/util/FilenameWrapperByteArrayResource.java new file mode 100644 index 0000000..6ccd123 --- /dev/null +++ b/src/main/java/com/afrozaar/wordpress/wpapi/v2/util/FilenameWrapperByteArrayResource.java @@ -0,0 +1,22 @@ +package com.afrozaar.wordpress.wpapi.v2.util; + +import org.springframework.core.io.ByteArrayResource; + +public class FilenameWrapperByteArrayResource extends ByteArrayResource { + final String fileName; + + public FilenameWrapperByteArrayResource(byte[] byteArray, String fileName) { + super(byteArray); + this.fileName = fileName; + } + + public FilenameWrapperByteArrayResource(byte[] byteArray, String description, String fileName) { + super(byteArray, description); + this.fileName = fileName; + } + + @Override + public String getFilename() { + return fileName; + } +} \ No newline at end of file diff --git a/src/test/java/com/afrozaar/wordpress/wpapi/v2/WordpressClientTest.java b/src/test/java/com/afrozaar/wordpress/wpapi/v2/WordpressClientTest.java index 06fcbda..0d0a8ac 100644 --- a/src/test/java/com/afrozaar/wordpress/wpapi/v2/WordpressClientTest.java +++ b/src/test/java/com/afrozaar/wordpress/wpapi/v2/WordpressClientTest.java @@ -2,11 +2,18 @@ import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.fail; + import com.afrozaar.wordpress.wpapi.v2.config.ClientConfig; import com.afrozaar.wordpress.wpapi.v2.config.ClientFactory; +import com.afrozaar.wordpress.wpapi.v2.exception.WpApiParsedException; import com.afrozaar.wordpress.wpapi.v2.model.Post; +import com.afrozaar.wordpress.wpapi.v2.model.builder.MediaBuilder; import com.afrozaar.wordpress.wpapi.v2.model.builder.PostBuilder; import com.afrozaar.wordpress.wpapi.v2.model.builder.TitleBuilder; +import com.afrozaar.wordpress.wpapi.v2.util.FilenameWrapperByteArrayResource; + +import org.springframework.core.io.ByteArrayResource; import org.junit.Test; import org.slf4j.Logger; @@ -46,4 +53,23 @@ public void PostFieldProcessingTest() { } + @Test(expected = NullPointerException.class) + public void CreateMedia_MustFallOverWhenResourceDoesNotReturnFilename() throws WpApiParsedException { + wordpress.createMedia(MediaBuilder.aMedia().build(), new ByteArrayResource(new byte[0])); + } + + @Test + public void CreateMedia_MustNotFallOverWhenResourceReturnsFileName() throws WpApiParsedException { + + + + try { + wordpress.createMedia(MediaBuilder.aMedia().build(), new FilenameWrapperByteArrayResource(new byte[0], "myfile.png")); + } catch (RuntimeException e) { + if (e instanceof NullPointerException) { + fail("Did not expect a nullpointer exception"); + } + } + } + } \ No newline at end of file