package org.zend.sdk.test.sdklib.target;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Random;
import org.junit.Before;
import org.junit.Test;
import org.zend.sdklib.internal.target.ZendTarget;
import org.zend.sdklib.target.IZendTarget;
public class TestZendTarget {
private String id;
private URL url;
private String key;
private String secretKey;
@Before
public void startup() throws MalformedURLException {
id = "dev4";
url = new URL("http://localhost");
key = "mykey";
secretKey = "343441";
}
@Test
public void testCreateValidTarget() throws MalformedURLException {
IZendTarget target = new ZendTarget(id, url, key, secretKey);
assertNotNull(target);
assertEquals(id, target.getId());
assertEquals(key, target.getKey());
assertEquals(secretKey, target.getSecretKey());
assertEquals(url, target.getHost());
}
@Test
public void testCreateEmptyTarget() throws MalformedURLException {
IZendTarget target = new ZendTarget();
assertNotNull(target);
assertNull(target.getId());
assertNull(target.getKey());
assertNull(target.getSecretKey());
assertNull(target.getHost());
}
@Test
public void testLoad() throws IOException {
IZendTarget target = new ZendTarget();
assertNotNull(target);
InputStream is = this.getClass().getResourceAsStream("conf");
target.load(is);
assertEquals(id, target.getId());
assertEquals(key, target.getKey());
assertEquals(secretKey, target.getSecretKey());
assertEquals(url, target.getHost());
assertEquals("value", target.getProperty("param"));
}
@Test
public void testStore() throws IOException {
IZendTarget target = new ZendTarget(id, url, key, secretKey);
assertNotNull(target);
File file = File.createTempFile("testStore",
String.valueOf(new Random().nextInt()));
file.createNewFile();
OutputStream os = new FileOutputStream(file);
target.store(os);
IZendTarget storedTarget = new ZendTarget();
assertNotNull(storedTarget);
InputStream is = new FileInputStream(file);
storedTarget.load(is);
assertEquals(target.getId(), storedTarget.getId());
assertEquals(target.getKey(), storedTarget.getKey());
assertEquals(target.getSecretKey(), storedTarget.getSecretKey());
assertEquals(target.getHost(), storedTarget.getHost());
}
@Test
public void testAddProperty() throws IOException {
ZendTarget target = new ZendTarget(id, url, key, secretKey);
assertNotNull(target);
String key = "test";
String value = "11";
target.addProperty(key, value);
assertEquals(value, target.getProperty(key));
}
@Test
public void testCreateTargetNullId() {
IZendTarget target = new ZendTarget(null, url, key, secretKey);
assertNotNull(target);
}
@Test
public void testCreateTargetInvalidKeyFirstChar() {
IZendTarget target = new ZendTarget(id, url, "1" + key, secretKey);
assertNotNull(target);
}
@Test
public void testCreateTargetInvalidKey() {
IZendTarget target = new ZendTarget(id, url, "invalid.key", secretKey);
assertNotNull(target);
}
@Test
public void testCreateTargetHostWithPort() throws MalformedURLException {
IZendTarget target = new ZendTarget(id, new URL(
"http://localhost:11111"), key, secretKey);
assertNotNull(target);
}
}