Package com.openshift.internal.client

Source Code of com.openshift.internal.client.ApplicationBuilderTest

/*******************************************************************************
* 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 java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;

import com.openshift.client.ApplicationBuilder;
import com.openshift.client.ApplicationScale;
import com.openshift.client.IDomain;
import com.openshift.client.IGearProfile;
import com.openshift.client.cartridge.ICartridge;
import com.openshift.client.cartridge.IEmbeddableCartridge;
import com.openshift.client.cartridge.IStandaloneCartridge;
import com.openshift.client.utils.CartridgeTestUtils;
import com.openshift.internal.client.utils.Assert.AssertionFailedException;

/**
* @author Andre Dietisheim
*/
public class ApplicationBuilderTest extends TestTimer {

  private IDomain domain;

  @Before
  public void setup() throws Throwable {
    this.domain = Mockito.mock(IDomain.class);
  }

  @Test
  public void shouldCreateApplicationWithStandaloneAndEmbeddableCartridges() {
    // pre-conditions
   
    String name = "redberret";
    IStandaloneCartridge as7 = CartridgeTestUtils.as7();
    IEmbeddableCartridge[] embedded =
        new IEmbeddableCartridge[] { CartridgeTestUtils.mysql51(), CartridgeTestUtils.mongodb22() };
    IGearProfile gear = new GearProfile("screamforicecream");
    ApplicationScale scale = ApplicationScale.NO_SCALE;
    int timeout = 42;
    String gitUrl = "git@github.com:openshift/openshift-java-client.git";
    Map<String, String> environmentVariables = new HashMap<String, String>();
    environmentVariables.put("adietish", "Andre Dietisheim");
   
    // operation
    new ApplicationBuilder(domain)
      .setName(name)
      .setStandaloneCartridge(as7)
      .setEmbeddableCartridges(embedded)
      .setApplicationScale(scale)
      .setTimeout(timeout)
      .setInitialGitUrl(gitUrl)
      .setGearProfile(gear)
      .setEnvironmentVariables(environmentVariables)
      .build();
   
    // verification
    LinkedList<ICartridge> cartridges = new LinkedList<ICartridge>(Arrays.asList(embedded));
    cartridges.add(0, as7);
    Mockito.verify(domain).createApplication(
        name, scale, gear, gitUrl, timeout, environmentVariables, cartridges.toArray(new ICartridge[cartridges.size()]));
  }

  @Test
  public void shouldCreateApplicationWithCartridges() {
    // pre-conditions
   
    String name = "redberries";
    ICartridge[] cartridges =
        new ICartridge[] { CartridgeTestUtils.as7(), CartridgeTestUtils.mysql51(), CartridgeTestUtils.mongodb22() };
    IGearProfile gear = new GearProfile("igloo");
    ApplicationScale scale = ApplicationScale.NO_SCALE;
    int timeout = 42;
    String gitUrl = "git@github.com:openshift/openshift-java-client.git";
    Map<String, String> environmentVariables = new HashMap<String, String>();
    environmentVariables.put("adietish", "Andre Dietisheim");
   
    // operation
    new ApplicationBuilder(domain)
      .setName(name)
      .setCartridges(Arrays.asList(cartridges))
      .setApplicationScale(scale)
      .setTimeout(timeout)
      .setInitialGitUrl(gitUrl)
      .setGearProfile(gear)
      .setEnvironmentVariables(environmentVariables)
      .build();
   
    // verification
    Mockito.verify(domain).createApplication(
        name, scale, gear, gitUrl, timeout, environmentVariables, cartridges);
  }
 
  @Test(expected=AssertionFailedException.class)
  public void shouldNotAcceptEmptyCartridges() {
    // pre-conditions
   
    // operation
    new ApplicationBuilder(domain)
      .setName("rabbitinthehole")
      .setCartridges(Collections.<ICartridge>emptyList());
   
    // verification
  }
}
TOP

Related Classes of com.openshift.internal.client.ApplicationBuilderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.