Drop unneeded generic type specifiers
[yangtools.git] / yang / yang-data-impl / src / test / java / org / opendaylight / yangtools / yang / data / impl / test / codecs / TypeDefinitionAwareCodecTestHelper.java
1 /*
2  * Copyright (c) 2014 Brocade Communications Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.yangtools.yang.data.impl.test.codecs;
10
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
13 import static org.junit.Assert.fail;
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.when;
16
17 import java.util.List;
18
19 import org.opendaylight.yangtools.concepts.Codec;
20 import org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodec;
21 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
22 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
23 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
24 import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
25 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
26 import org.opendaylight.yangtools.yang.model.util.BitsType;
27 import org.opendaylight.yangtools.yang.model.util.EnumerationType;
28 import org.opendaylight.yangtools.yang.model.util.UnionType;
29
30 import com.google.common.base.Optional;
31 import com.google.common.collect.Lists;
32
33 public class TypeDefinitionAwareCodecTestHelper {
34
35     @SuppressWarnings("unchecked")
36     public static <T> T getCodec( TypeDefinition<?> def, Class<T> clazz ) {
37         Object codec = TypeDefinitionAwareCodec.from( def );
38         assertNotNull( codec );
39         assertTrue( clazz.isAssignableFrom( codec.getClass() ) );
40         return (T)codec;
41     }
42
43     public static void deserializeWithExpectedIllegalArgEx( Codec<String,?> codec, String param ) {
44         try {
45             codec.deserialize( param );
46             fail( "Expected IllegalArgumentException" );
47         } catch (IllegalArgumentException e) {
48             // Expected ...
49         }
50     }
51
52     public static EnumTypeDefinition toEnumTypeDefinition( String... enums ) {
53         List<EnumTypeDefinition.EnumPair> enumList = Lists.newArrayList();
54         for( String en: enums ) {
55             EnumTypeDefinition.EnumPair mockEnum = mock( EnumTypeDefinition.EnumPair.class );
56             when( mockEnum.getName() ).thenReturn( en );
57             enumList.add( mockEnum );
58         }
59
60         return EnumerationType.create( mock( SchemaPath.class ), enumList,
61                                        Optional.absent() );
62     }
63
64     public static UnionTypeDefinition toUnionTypeDefinition( TypeDefinition<?>... types ) {
65         return UnionType.create( Lists.newArrayList( types ) );
66     }
67
68     public static BitsTypeDefinition toBitsTypeDefinition( String... bits ) {
69         List<BitsTypeDefinition.Bit> bitList = Lists.newArrayList();
70         for( String bit: bits ) {
71             BitsTypeDefinition.Bit mockBit = mock( BitsTypeDefinition.Bit.class );
72             when( mockBit.getName() ).thenReturn( bit );
73             bitList.add( mockBit );
74         }
75
76         return BitsType.create( mock( SchemaPath.class ), bitList );
77     }
78 }