/*******************************************************************************
* Copyright (c) 2014 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package com.openshift.internal.client;
import static org.fest.assertions.Assertions.assertThat;
import java.net.MalformedURLException;
import java.net.URL;
import org.junit.Test;
import com.openshift.client.cartridge.ICartridge;
import com.openshift.client.utils.CartridgeAssert;
import com.openshift.client.utils.CartridgeTestUtils;
import com.openshift.internal.client.cartridge.BaseCartridge;
/**
* @author Andre Dietisheim
*/
public class BaseCartridgeTest extends TestTimer {
@Test
public void shouldNonDownloadableEqualsNonDownloadable() {
// pre-coniditions
// operation
// verification
assertThat(new BaseCartridge("redhat"))
.isEqualTo(new BaseCartridge("redhat"));
assertThat(new BaseCartridge("redhat"))
.isNotEqualTo(new BaseCartridge("jboss"));
}
@Test
public void shouldDownloadableEqualsDownloadable() throws MalformedURLException {
// pre-coniditions
// operation
// verification
assertThat(new BaseCartridge(new URL(CartridgeTestUtils.GO_URL)))
.isEqualTo(new BaseCartridge(new URL(CartridgeTestUtils.GO_URL)));
}
@Test
public void shouldDownloadableNotEqualsDownloadableWithDifferentUrl() throws MalformedURLException {
// pre-coniditions
// operation
// verification
assertThat(new BaseCartridge(new URL(CartridgeTestUtils.GO_URL)))
.isNotEqualTo(new BaseCartridge(new URL(CartridgeTestUtils.FOREMAN_URL)));
}
@Test
public void shouldNotHaveUrlInNonDownloadableCartridge() throws Throwable {
// pre-conditions
// operation
ICartridge mysql = new BaseCartridge(CartridgeTestUtils.MYSQL_51_NAME);
// verifications
new CartridgeAssert<ICartridge>(mysql)
.hasNoUrl();
}
@Test
public void shouldHaveDisplayNameInDownloadableCartridgeWithAnchor() throws Throwable {
// pre-conditions
ICartridge aerogear = CartridgeTestUtils.aerogear();
// operation
// verifications
assertThat(aerogear.getDisplayName()).isEqualTo("AeroGear");
}
@Test
public void shouldNotOverrideDisplayNameWithAnchor() throws Throwable {
// pre-conditions
String name = "redhat";
String displayName = "Red Hat OpenShift Cartridge";
// operation
ICartridge redhat = new CartridgeFake(name, new URL(CartridgeTestUtils.WILDFLY_URL), displayName);
// verifications
assertThat(redhat.getDisplayName()).isEqualTo(displayName);
assertThat(redhat.getName()).isEqualTo(name);
}
@Test
public void shouldNotBeDownloadableCartridge() throws Throwable {
// pre-conditions
ICartridge jbossAsCartridge = new BaseCartridge("jboss-7");
ICartridge jbossEapCartridge = new BaseCartridge("jbosseap-6");
// operation
// verifications
assertThat(jbossAsCartridge.isDownloadable()).isFalse();
assertThat(jbossAsCartridge.getUrl()).isNull();
assertThat(jbossEapCartridge.isDownloadable()).isFalse();
assertThat(jbossEapCartridge.getUrl()).isNull();
}
@Test
public void shouldBeDownloadableCartridges() throws Throwable {
// pre-conditions
// operation
// verifications
assertThat(CartridgeTestUtils.go11().isDownloadable()).isTrue();
assertThat(CartridgeTestUtils.foreman063().isDownloadable()).isTrue();
}
@Test
public void shouldBeObsoleteCartridges() throws Throwable {
// pre-conditions
// operation
// verifications
assertThat(CartridgeTestUtils.createObsoleteStandaloneCartridge(false).isObsolete()).isFalse();
assertThat(CartridgeTestUtils.createObsoleteStandaloneCartridge(true).isObsolete()).isTrue();
assertThat(CartridgeTestUtils.createObsoleteEmbeddableCartridge(false).isObsolete()).isFalse();
assertThat(CartridgeTestUtils.createObsoleteEmbeddableCartridge(true).isObsolete()).isTrue();
}
private class CartridgeFake extends BaseCartridge {
CartridgeFake(String name, URL url, String displayName) {
super(name, url, displayName, null);
}
}
}