/**
* Copyright (C) 2013-2015 all@code-story.net
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License
*/
package net.codestory.http.internal;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.HashSet;
import org.junit.Test;
import org.simpleframework.http.Query;
public class SimpleQueryTest {
Query query = mock(Query.class);
SimpleQuery simpleQuery = new SimpleQuery(query);
@Test
public void get() {
when(query.get("name")).thenReturn("value");
assertThat(simpleQuery.get("name")).isEqualTo("value");
}
@Test
public void all() {
when(query.getAll("name")).thenReturn(asList("value1", "value2"));
assertThat(simpleQuery.all("name")).containsExactly("value1", "value2");
}
@Test
public void keyValues() {
assertThat(simpleQuery.keyValues()).isSameAs(query);
}
@Test
public void keys() {
when(query.keySet()).thenReturn(new HashSet<>(asList("key1", "key2")));
assertThat(simpleQuery.keys()).containsExactly("key1", "key2");
}
@Test
public void integer_value() {
when(query.get("key")).thenReturn("42");
assertThat(simpleQuery.getInteger("key")).isEqualTo(42);
assertThat(simpleQuery.getInteger("missing")).isEqualTo(0);
assertThat(simpleQuery.getInteger("missing", 42)).isEqualTo(42);
}
@Test
public void long_value() {
when(query.get("key")).thenReturn("42");
assertThat(simpleQuery.getLong("key")).isEqualTo(42L);
assertThat(simpleQuery.getLong("missing")).isEqualTo(0L);
assertThat(simpleQuery.getLong("missing", 1337L)).isEqualTo(1337L);
}
@Test
public void float_value() {
when(query.get("key")).thenReturn("42.5");
assertThat(simpleQuery.getFloat("key")).isEqualTo(42.5f);
assertThat(simpleQuery.getFloat("missing")).isEqualTo(0f);
assertThat(simpleQuery.getFloat("missing", 3.14f)).isEqualTo(3.14f);
}
@Test
public void double_value() {
when(query.get("key")).thenReturn("42.5");
assertThat(simpleQuery.getDouble("key")).isEqualTo(42.5d);
assertThat(simpleQuery.getDouble("missing")).isEqualTo(0d);
assertThat(simpleQuery.getDouble("missing", 3.14d)).isEqualTo(3.14d);
}
@Test
public void boolean_value() {
when(query.get("key")).thenReturn("true");
assertThat(simpleQuery.getBoolean("key")).isTrue();
assertThat(simpleQuery.getBoolean("missing")).isFalse();
assertThat(simpleQuery.getBoolean("missing", true)).isTrue();
}
@Test
public void unwrap() {
assertThat(simpleQuery.unwrap(Query.class)).isSameAs(query);
}
}