/**
* Copyright 2014 Comcast Cable Communications Management, LLC
*
* This file is part of CATS.
*
* CATS is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* CATS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with CATS. If not, see <http://www.gnu.org/licenses/>.
*/
package com.comcast.cats.image;
import java.io.File;
import org.testng.Assert;
import org.testng.annotations.Test;
/**
*
* This class tests loading valid and invalid images, valid and invalid paths, and unexpected arguments.
*
* @author mzmuda
*/
public class BufferedImageLoaderTest {
/** This timeout should be 2-3 seconds. Changing because tests are timing out in VM **/
private static final int TIME_OUT = 30000;
private static final String TEXT_NOSLASH = "testFolder/Blue.txt";
private static final String IMAGE_NOSLASH = "testFolder/Blue.jpg";
private static final String IMAGE_SLASH = "/" + IMAGE_NOSLASH;
private static final String INVALID_RESOURCE = "/thisDoesNotExits/none.test.ok";
private static final String IMAGE_RELETIVE = "src/test/resources/testFolder/Blue.jpg";
private static final String TEXT_RELETIVE = "src/test/resources/testFolder/Blue.txt";
/**
* Testing String constructor.
*/
@Test(timeOut = TIME_OUT)
public void testBufferedImageLoaderString1() {
BufferedImageLoader bil = new BufferedImageLoader(TEXT_NOSLASH);
Assert.assertEquals(bil.getPath(), TEXT_NOSLASH);
Assert.assertNull(bil.getResourceClass());
}
/**
* Testing String constructor.
* Passing in null.
*/
@Test(timeOut = TIME_OUT, expectedExceptions = java.lang.IllegalArgumentException.class)
public void testBufferedImageLoaderString2() {
new BufferedImageLoader(null);
}
/**
* Testing String constructor.
* Passing in empty string.
*/
@Test(timeOut = TIME_OUT, expectedExceptions = java.lang.IllegalArgumentException.class)
public void testBufferedImageLoaderString3() {
new BufferedImageLoader("");
}
/**
* Testing Class, String constructor.
*/
@Test(timeOut = TIME_OUT)
public void testBufferedImageLoaderClassString1() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), TEXT_NOSLASH);
Assert.assertEquals(bil.getPath(), TEXT_NOSLASH);
Assert.assertEquals(bil.getResourceClass(), this.getClass());
}
/**
* Testing Class, String constructor.
* Pass in null class.
*/
@Test(timeOut = TIME_OUT)
public void testBufferedImageLoaderClassString2() {
BufferedImageLoader bil = new BufferedImageLoader(null, TEXT_NOSLASH);
Assert.assertEquals(bil.getPath(), TEXT_NOSLASH);
Assert.assertNull(bil.getResourceClass());
}
/**
* Testing BufferedImageLoader.loadImageResource().
* Passing in resource with no slash.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImageResource1() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), IMAGE_NOSLASH);
Assert.assertNotNull(bil.loadImageResource(), "BufferedImage should not be null");
}
/**
* Testing BufferedImageLoader.loadImageResource().
* Passing in resource with slash.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImageResource2() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), IMAGE_SLASH);
Assert.assertNotNull(bil.loadImageResource(), "BufferedImage should not be null");
}
/**
* Testing BufferedImageLoader.loadImageResource().
* Passing in null class.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImageResource3() {
BufferedImageLoader bil = new BufferedImageLoader(null, IMAGE_SLASH);
Assert.assertNull(bil.loadImageResource(), "BufferedImage should be null");
}
/**
* Testing BufferedImageLoader.loadImageResource().
* Passing in invalid resource path.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImageResource4() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), INVALID_RESOURCE);
Assert.assertNull(bil.loadImageResource(), "BufferedImage should not null");
}
/**
* Testing BufferedImageLoader.loadImageResource().
* Passing in non image resource.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImageResource5() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), TEXT_NOSLASH);
Assert.assertNull(bil.loadImageResource(), "BufferedImage should be null");
}
/**
* Testing BufferedImageLoader.loadImageFromFile(File theFile).
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderString1")
public void testLoadImageFromFile1() {
File f = new File(IMAGE_RELETIVE);
Assert.assertTrue(f.isFile(), "Required file does not exist: " + f.getAbsolutePath());
BufferedImageLoader bil = new BufferedImageLoader(f.getAbsolutePath());
Assert.assertNotNull(bil.loadImageFromFile(), "BufferedImage should not be null");
}
/**
* Testing BufferedImageLoader.loadImageFromFile(File theFile).
* Passing in invalid file.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderString1")
public void testLoadImageFromFile2() {
File f = new File(INVALID_RESOURCE);
Assert.assertFalse(f.isFile(), "Invalid file actually exist: " + f.getAbsolutePath());
BufferedImageLoader bil = new BufferedImageLoader(f.getAbsolutePath());
Assert.assertNull(bil.loadImageFromFile(), "BufferedImage should be null");
}
/**
* Testing BufferedImageLoader.loadImageFromFile(File theFile).
* Trying to load non image file.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderString1")
public void testLoadImageFromFile3() {
File f = new File(TEXT_RELETIVE);
Assert.assertTrue(f.isFile(), "Required file does not exist: " + f.getAbsolutePath());
BufferedImageLoader bil = new BufferedImageLoader(f.getAbsolutePath());
Assert.assertNull(bil.loadImageFromFile(), "BufferedImage should be null");
}
/**
* Testing BufferedImageLoader.loadImage()
* Load from file on disk.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderString1")
public void testLoadImage1() {
File f = new File(IMAGE_RELETIVE);
Assert.assertTrue(f.isFile(), "Required file does not exist: " + f.getAbsolutePath());
BufferedImageLoader bil = new BufferedImageLoader(f.getAbsolutePath());
Assert.assertNotNull(bil.loadImage(), "BufferedImage should not be null");
}
/**
* Testing BufferedImageLoader.loadImage()
* Load non image file on disk.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderString1")
public void testLoadImage2() {
File f = new File(TEXT_RELETIVE);
Assert.assertTrue(f.isFile(), "Required file does not exist: " + f.getAbsolutePath());
BufferedImageLoader bil = new BufferedImageLoader(f.getAbsolutePath());
Assert.assertNull(bil.loadImage(), "BufferedImage should be null");
}
/**
* Testing BufferedImageLoader.loadImage()
* Load from resource with slash.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImage3() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), IMAGE_SLASH);
Assert.assertNotNull(bil.loadImage(), "BufferedImage should not be null");
}
/**
* Testing BufferedImageLoader.loadImage()
* Load from resource with no slash.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImage4() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), IMAGE_NOSLASH);
Assert.assertNotNull(bil.loadImage(), "BufferedImage should not be null");
}
/**
* Testing BufferedImageLoader.loadImage()
* Load from resource with invalid image file.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImage5() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), TEXT_NOSLASH);
Assert.assertNull(bil.loadImage(), "BufferedImage should be null");
}
/**
* Testing BufferedImageLoader.loadImage()
* Load from resource with invalid file.
*/
@Test(timeOut = TIME_OUT, dependsOnMethods = "testBufferedImageLoaderClassString1")
public void testLoadImage6() {
BufferedImageLoader bil = new BufferedImageLoader(this.getClass(), INVALID_RESOURCE);
Assert.assertNull(bil.loadImage(), "BufferedImage should be null");
}
/**
* Testing BufferedImageLoader.loadImage()
* Pass in null path.
*/
@Test(timeOut = TIME_OUT, expectedExceptions = java.lang.IllegalArgumentException.class)
public void testLoadImage7() {
new BufferedImageLoader(this.getClass(), null);
}
/**
* Testing BufferedImageLoader.loadImage()
* Pass in empty path.
*/
@Test(timeOut = TIME_OUT, expectedExceptions = java.lang.IllegalArgumentException.class)
public void testLoadImage8() {
new BufferedImageLoader(this.getClass(), "");
}
}