View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.juneau.commons.function;
18  
19  import static org.junit.jupiter.api.Assertions.*;
20  
21  import org.apache.juneau.*;
22  import org.junit.jupiter.api.*;
23  
24  class Tuple5_Test extends TestBase {
25  
26  	//------------------------------------------------------------------------------------------------------------------
27  	// Basic tests.
28  	//------------------------------------------------------------------------------------------------------------------
29  	@Test void a01_basic() {
30  		var x = Tuple5.of("foo",1,2,3,4);
31  		assertEquals("foo", x.getA());
32  		assertEquals(1, x.getB());
33  		assertEquals(2, x.getC());
34  		assertEquals(3, x.getD());
35  		assertEquals(4, x.getE());
36  	}
37  
38  	@Test void a02_equality() {
39  		var x1 = Tuple5.of("foo",1,2,3,4);
40  		var x2 = Tuple5.of("foo",1,2,3,4);
41  		var x3 = Tuple5.of(null,1,2,3,4);
42  		var x4 = Tuple5.of("foo",null,2,3,4);
43  		var x5 = Tuple5.of("foo",1,null,3,4);
44  		var x6 = Tuple5.of("foo",1,2,null,4);
45  		var x7 = Tuple5.of("foo",1,2,3,null);
46  		assertEquals(x1, x2);
47  		assertEquals(x1.hashCode(), x2.hashCode());
48  		assertNotEquals(x1, x3);
49  		assertNotEquals(x1.hashCode(), x3.hashCode());
50  		assertNotEquals(x1, x4);
51  		assertNotEquals(x1.hashCode(), x4.hashCode());
52  		assertNotEquals(x1, x5);
53  		assertNotEquals(x1.hashCode(), x5.hashCode());
54  		assertNotEquals(x1, x6);
55  		assertNotEquals(x1.hashCode(), x6.hashCode());
56  		assertNotEquals(x1, x7);
57  		assertNotEquals(x1.hashCode(), x7.hashCode());
58  	}
59  
60  	//------------------------------------------------------------------------------------------------------------------
61  	// Optional methods tests.
62  	//------------------------------------------------------------------------------------------------------------------
63  	@Test void a03_optA_withValue() {
64  		var x = Tuple5.of("foo", 1, 2, 3, 4);
65  		var opt = x.optA();
66  		assertTrue(opt.isPresent());
67  		assertEquals("foo", opt.get());
68  	}
69  
70  	@Test void a04_optA_withNull() {
71  		var x = Tuple5.of(null, 1, 2, 3, 4);
72  		var opt = x.optA();
73  		assertFalse(opt.isPresent());
74  		assertTrue(opt.isEmpty());
75  	}
76  
77  	@Test void a05_optB_withValue() {
78  		var x = Tuple5.of("foo", 1, 2, 3, 4);
79  		var opt = x.optB();
80  		assertTrue(opt.isPresent());
81  		assertEquals(1, opt.get());
82  	}
83  
84  	@Test void a06_optB_withNull() {
85  		var x = Tuple5.of("foo", null, 2, 3, 4);
86  		var opt = x.optB();
87  		assertFalse(opt.isPresent());
88  		assertTrue(opt.isEmpty());
89  	}
90  
91  	@Test void a07_optC_withValue() {
92  		var x = Tuple5.of("foo", 1, 2, 3, 4);
93  		var opt = x.optC();
94  		assertTrue(opt.isPresent());
95  		assertEquals(2, opt.get());
96  	}
97  
98  	@Test void a08_optC_withNull() {
99  		var x = Tuple5.of("foo", 1, null, 3, 4);
100 		var opt = x.optC();
101 		assertFalse(opt.isPresent());
102 		assertTrue(opt.isEmpty());
103 	}
104 
105 	@Test void a09_optD_withValue() {
106 		var x = Tuple5.of("foo", 1, 2, 3, 4);
107 		var opt = x.optD();
108 		assertTrue(opt.isPresent());
109 		assertEquals(3, opt.get());
110 	}
111 
112 	@Test void a10_optD_withNull() {
113 		var x = Tuple5.of("foo", 1, 2, null, 4);
114 		var opt = x.optD();
115 		assertFalse(opt.isPresent());
116 		assertTrue(opt.isEmpty());
117 	}
118 
119 	@Test void a11_optE_withValue() {
120 		var x = Tuple5.of("foo", 1, 2, 3, 4);
121 		var opt = x.optE();
122 		assertTrue(opt.isPresent());
123 		assertEquals(4, opt.get());
124 	}
125 
126 	@Test void a12_optE_withNull() {
127 		var x = Tuple5.of("foo", 1, 2, 3, null);
128 		var opt = x.optE();
129 		assertFalse(opt.isPresent());
130 		assertTrue(opt.isEmpty());
131 	}
132 }