Home | History | Annotate | Download | only in euicc
      1 /*
      2  * Copyright (C) 2018 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.internal.telephony.uicc.euicc;
     18 
     19 import static org.junit.Assert.assertEquals;
     20 import static org.junit.Assert.assertFalse;
     21 import static org.junit.Assert.assertNotEquals;
     22 import static org.junit.Assert.assertNull;
     23 import static org.junit.Assert.assertTrue;
     24 
     25 import com.android.internal.telephony.uicc.IccUtils;
     26 
     27 import org.junit.Test;
     28 
     29 public class EuiccSpecVersionTest {
     30     @Test
     31     public void testCreate() {
     32         EuiccSpecVersion ver = new EuiccSpecVersion(1, 2, 3);
     33         assertEquals(1, ver.getMajor());
     34         assertEquals(2, ver.getMinor());
     35         assertEquals(3, ver.getRevision());
     36     }
     37 
     38     @Test
     39     public void testCreateFromBytes() {
     40         EuiccSpecVersion ver = new EuiccSpecVersion(new byte[] {1, 2, 3});
     41         assertEquals(1, ver.getMajor());
     42         assertEquals(2, ver.getMinor());
     43         assertEquals(3, ver.getRevision());
     44     }
     45 
     46     @Test
     47     public void testCompareTo() {
     48         EuiccSpecVersion ver1 = new EuiccSpecVersion(1, 2, 3);
     49         EuiccSpecVersion ver2 = new EuiccSpecVersion(1, 2, 3);
     50         assertEquals(0, ver1.compareTo(ver2));
     51         assertEquals(0, ver2.compareTo(ver1));
     52         assertTrue(ver1.equals(ver2));
     53         assertFalse(ver1.equals(null));
     54         assertFalse(ver1.equals(new Object()));
     55         assertEquals(ver1.hashCode(), ver2.hashCode());
     56 
     57         ver2 = new EuiccSpecVersion(2, 2, 3);
     58         assertEquals(-1, ver1.compareTo(ver2));
     59         assertEquals(1, ver2.compareTo(ver1));
     60         assertFalse(ver2.equals(ver1));
     61         assertNotEquals(ver1.hashCode(), ver2.hashCode());
     62 
     63         ver2 = new EuiccSpecVersion(1, 3, 3);
     64         assertEquals(-1, ver1.compareTo(ver2));
     65         assertEquals(1, ver2.compareTo(ver1));
     66         assertFalse(ver2.equals(ver1));
     67         assertNotEquals(ver1.hashCode(), ver2.hashCode());
     68 
     69         ver2 = new EuiccSpecVersion(1, 2, 4);
     70         assertEquals(-1, ver1.compareTo(ver2));
     71         assertEquals(1, ver2.compareTo(ver1));
     72         assertFalse(ver2.equals(ver1));
     73         assertNotEquals(ver1.hashCode(), ver2.hashCode());
     74 
     75         ver2 = new EuiccSpecVersion(2, 2, 2);
     76         assertEquals(-1, ver1.compareTo(ver2));
     77         assertEquals(1, ver2.compareTo(ver1));
     78 
     79         ver2 = new EuiccSpecVersion(2, 1, 3);
     80         assertEquals(-1, ver1.compareTo(ver2));
     81         assertEquals(1, ver2.compareTo(ver1));
     82 
     83         ver2 = new EuiccSpecVersion(1, 3, 2);
     84         assertEquals(-1, ver1.compareTo(ver2));
     85         assertEquals(1, ver2.compareTo(ver1));
     86     }
     87 
     88     @Test
     89     public void testFromOpenChannelResponse() {
     90         assertEquals(new EuiccSpecVersion(2, 1, 3),
     91                 EuiccSpecVersion.fromOpenChannelResponse(
     92                         IccUtils.hexStringToBytes("E00582030201039000")));
     93     }
     94 
     95     @Test
     96     public void testFromOpenChannelResponseError() {
     97         // Invalid data
     98         assertNull(EuiccSpecVersion.fromOpenChannelResponse(
     99                 IccUtils.hexStringToBytes("E00F05820202039000")));
    100         // Wrong length
    101         assertNull(EuiccSpecVersion.fromOpenChannelResponse(
    102                 IccUtils.hexStringToBytes("E005820202039000")));
    103         // Wrong tag
    104         assertNull(EuiccSpecVersion.fromOpenChannelResponse(
    105                 IccUtils.hexStringToBytes("E10482030201039000")));
    106     }
    107 }
    108