/*******************************************************************************
* Copyright (c) 2017 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.
******************************************************************************/
package com.openshift.internal.restclient.model.v1;
import static org.fest.assertions.Assertions.assertThat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.junit.Test;
import com.openshift.internal.restclient.model.EnvironmentVariable;
import com.openshift.internal.restclient.model.ModelNodeBuilder;
import com.openshift.restclient.model.IEnvironmentVariable;
import com.openshift.restclient.utils.EnvironmentVariableUtils;
/**
* @author Andre Dietisheim
*/
public class EnvironmentVariableTest {
@Test
public void shouldBeEqualGivenEqualNameAndValue() {
// given
IEnvironmentVariable var1 = createEnvironmentVariable("foo", "bar");
IEnvironmentVariable var2 = createEnvironmentVariable("foo", "bar");
// when
// then
assertThat(var1).isEqualTo(var2);
}
@Test
public void shouldBeNonEqualGivenNonEqualNameAndValue() {
// given
IEnvironmentVariable var1 = createEnvironmentVariable("foo", "bar");
IEnvironmentVariable var2 = createEnvironmentVariable("kung", "foo");
// when
// then
assertThat(var1).isNotEqualTo(var2);
}
@SuppressWarnings("serial")
@Test
public void shouldReturnEmptyMapGivenEmptyEnvVars() {
// given
Collection<IEnvironmentVariable> envVars = Collections.emptyList();
// when
Map<String, String> envVarsMap = EnvironmentVariableUtils.toMapOfStrings(envVars);
// then
assertThat(envVarsMap).isEmpty();
}
@SuppressWarnings("serial")
@Test
public void shouldReturnMapOfStringsForEnvVariables() {
// given
Collection<IEnvironmentVariable> envVars = createEnvironmentVariables("foo", "bar", "kung", "foo", "smurfHater", "gargamel");
// when
Map<String, String> envVarsMap = EnvironmentVariableUtils.toMapOfStrings(envVars);
// then
assertThat(envVarsMap).isEqualTo(
new HashMap<String, String>() {{ put("foo", "bar"); put("kung", "foo"); put("smurfHater", "gargamel"); }});
}
private Collection<IEnvironmentVariable> createEnvironmentVariables(String... touples) {
assertThat(touples).isNotNull();
assertThat(touples.length % 2).isEqualTo(0);
ArrayList<IEnvironmentVariable> envVars = new ArrayList<IEnvironmentVariable>();
for (int i = 0; i < touples.length;) {
envVars.add(createEnvironmentVariable(touples[i++], touples[i++]));
}
return envVars;
}
private IEnvironmentVariable createEnvironmentVariable(String name, String value) {
ModelNodeBuilder builder = new ModelNodeBuilder();
builder
.set(EnvironmentVariable.NAME, name)
.set(EnvironmentVariable.VALUE, value);
return new EnvironmentVariable(builder.build(), null);
}
}