/**
*
* Copyright (c) 2006-2017, Speedment, Inc. All Rights Reserved.
*
* 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.
*/
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.speedment.common.tuple.old_tests;
import com.speedment.common.tuple.Tuples;
import com.speedment.common.tuple.TuplesOfNullables;
import com.speedment.common.tuple.nullable.Tuple2OfNullables;
import org.junit.*;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import static java.util.stream.Collectors.toList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
*
* @author pemi
*/
public class Tuple2NullableTest {
private static final int FIRST = 8;
private static final int SECOND = 16;
private Tuple2OfNullables<Integer, Integer> instance;
public Tuple2NullableTest() {
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
instance = TuplesOfNullables.ofNullables(FIRST, SECOND);
//instance = new Tuple2OfNullables<>(Integer.class, Integer.class, FIRST, SECOND);
}
@After
public void tearDown() {
}
@Test
public void testGet0() {
assertEquals(FIRST, instance.get0().get().intValue());
}
@Test
public void testGet1() {
assertEquals(SECOND, instance.get1().get().intValue());
}
@Test
public void testGet() {
assertEquals(FIRST, instance.get(0).get());
assertEquals(SECOND, instance.get(1).get());
}
@Test
public void testCasting() {
Tuple2OfNullables<Integer, String> t2 = TuplesOfNullables.ofNullables(1, null);
assertEquals(Optional.of(1), t2.get0());
assertEquals(Optional.empty(), t2.get1());
}
// @Test
// public void testSet0() {
// System.out.println("set0");
// instance.set1(32);
// assertEquals(32, instance.get1().get().intValue());
// }
//
// @Test
// public void testSet1() {
// System.out.println("set1");
// instance.set1(64);
// assertEquals(64, instance.get1().get().intValue());
// }
@Test
public void testDefConstructor() {
final Tuple2OfNullables<Integer, Integer> newInstance = TuplesOfNullables.ofNullables(1, 2);
assertTrue(newInstance.get0().isPresent());
assertTrue(newInstance.get1().isPresent());
}
@Test
public void testHash() {
int hashCodeInstance = instance.hashCode();
final Tuple2OfNullables<Integer, Integer> newInstance = TuplesOfNullables.ofNullables(FIRST, SECOND);
int hashCodenewInstance = newInstance.hashCode();
assertEquals(hashCodeInstance, hashCodenewInstance);
}
@Test
public void testEquals() {
final Tuple2OfNullables<Integer, Integer> newInstance = TuplesOfNullables.ofNullables(FIRST, SECOND);
assertEquals(instance, newInstance);
}
@Test
public void testToString() {
final Tuple2OfNullables<Integer, Integer> newInstance = TuplesOfNullables.ofNullables(null, null);
}
@Test
public void testStream() {
final List<Object> content = instance.stream().collect(toList());
final List<Optional<Integer>> expected = Arrays.asList(Optional.of(FIRST), Optional.of(SECOND));
assertEquals(expected, content);
final Tuple2OfNullables<Integer, Integer> newInstance = TuplesOfNullables.ofNullables(FIRST, null);
final List<Object> content2 = newInstance.stream().collect(toList());
final List<Optional<Integer>> expected2 = Arrays.asList(Optional.of(FIRST), Optional.empty());
assertEquals(expected2, content2);
}
@Test
public void testStreamOf() {
final Tuple2OfNullables<Integer, Integer> newInstance = TuplesOfNullables.ofNullables(FIRST, null);
List<Integer> content = newInstance.streamOf(Integer.class).collect(toList());
List<Integer> expected = Collections.singletonList(FIRST);
assertEquals(expected, content);
}
@Test
public void testStreamOf2() {
final Tuple2OfNullables<Integer, String> newInstance = TuplesOfNullables.ofNullables(FIRST, "Tryggve");
List<Integer> content = newInstance.streamOf(Integer.class).collect(toList());
List<Integer> expected = Collections.singletonList(FIRST);
assertEquals(expected, content);
}
}