package org.wahlzeit.model.persistence; import com.google.appengine.api.images.Image; import com.google.appengine.api.images.ImagesServiceFactory; import org.junit.ClassRule; import org.junit.Test; import org.junit.rules.RuleChain; import org.junit.rules.TestRule; import org.wahlzeit.testEnvironmentProvider.LocalDatastoreServiceTestConfigProvider; import org.wahlzeit.testEnvironmentProvider.RegisteredOfyEnvironmentProvider; import java.io.IOException; import java.nio.ByteBuffer; import static org.junit.Assert.fail; /** * Test class for {@link DatastoreAdapter} * * @review */ public class DatastoreAdapterTest extends AbstractAdapterTest { @ClassRule public static TestRule chain = RuleChain. outerRule(new LocalDatastoreServiceTestConfigProvider()). around(new RegisteredOfyEnvironmentProvider()); private Image tooLargeTestImage; @Override protected void storageDependentSetUp() { imageStorage = new DatastoreAdapter(); ByteBuffer bb = ByteBuffer.allocate(1024 * 1025); tooLargeTestImage = ImagesServiceFactory.makeImage(bb.array()); } @Test(expected = ArrayIndexOutOfBoundsException.class) public void testUpperSizeLimit() { try { imageStorage.writeImage(tooLargeTestImage, "blub", 1); } catch (IOException e) { fail("IOException should not be thrown!"); } } }