1   /* Copyright 2002-2025 CS GROUP
2    * Licensed to CS GROUP (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS 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.orekit.gnss.metric.parser;
18  
19  import org.junit.jupiter.api.Assertions;
20  import org.junit.jupiter.api.Test;
21  import org.orekit.errors.OrekitException;
22  import org.orekit.errors.OrekitMessages;
23  
24  public class HexadecimalSequenceEncodedMessageTest extends AbstractEncodedMessageTest {
25  
26      protected EncodedMessage buildRawMessages(byte[] bytes) {
27          final StringBuilder builder = new StringBuilder();
28          for (int i = 0; i < bytes.length; ++i) {
29              int d = bytes[i] & 0xFF;
30              builder.append(Character.forDigit(d >>> 4 & 0xF, 16));
31              builder.append(Character.forDigit(d       & 0xF, 16));
32          }
33          return new HexadecimalSequenceEncodedMessage(builder);
34      }
35  
36      @Test
37      public void testString() {
38          final EncodedMessage message = new HexadecimalSequenceEncodedMessage("0BFF3480AA");
39          message.start();
40          Assertions.assertEquals(0x0b,   message.extractBits(8));
41          Assertions.assertEquals(0xff34, message.extractBits(16));
42          Assertions.assertEquals(0x8,    message.extractBits(4));
43          Assertions.assertEquals(0x0,    message.extractBits(4));
44          Assertions.assertEquals(0xaa,   message.extractBits(8));
45          try {
46              message.extractBits(1);
47              Assertions.fail("an exception should have been thrown");
48          } catch (OrekitException oe) {
49              Assertions.assertEquals(OrekitMessages.END_OF_ENCODED_MESSAGE, oe.getSpecifier());
50          }
51      }
52  
53  }