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.transforms;
18
19 import java.util.*;
20
21 import org.apache.juneau.*;
22 import org.apache.juneau.swap.*;
23 import org.apache.juneau.swaps.*;
24
25 class FunctionalSwapTest extends RoundTripObjectSwapTest_Base {
26
27 //------------------------------------------------------------------------------------------------------------------
28 // Setup
29 //------------------------------------------------------------------------------------------------------------------
30
31 private static BeanSession BS = BeanContext.DEFAULT_SESSION;
32 private static final LocaleSwap localeSwap = new LocaleSwap();
33 private static FunctionalSwap<Locale,String> SWAP = new FunctionalSwap<>(Locale.class, String.class, x->localeSwap.swap(BS, x), x->localeSwap.unswap(BS, x, null));
34
35 private static <T,S> RoundTripObjectSwap_Tester<T,S> tester(int index, String label, T object, ObjectSwap<T,S> swap, S expected, BeanSession bs) {
36 return RoundTripObjectSwap_Tester.create(index, label, object, swap, expected, bs).build();
37 }
38
39 //------------------------------------------------------------------------------------------------------------------
40 // Parameters
41 //------------------------------------------------------------------------------------------------------------------
42
43 private static final RoundTripObjectSwap_Tester<?,?>[] TESTERS = {
44 tester(1, "Language only", Locale.ENGLISH, SWAP, "en", BS),
45 tester(2, "Language and country", Locale.JAPAN, SWAP, "ja-JP", BS),
46 tester(3, "null", null, SWAP, null, BS)
47 };
48
49 static RoundTripObjectSwap_Tester<?,?>[] testers() {
50 return TESTERS;
51 }
52 }