aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConstantsEncodingTest.java
blob: e2a6ba52fd39a44eb25ef813079fd87cde313177 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
 * Copyright (C) 2008, Google Inc. and others
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0 which is available at
 * https://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.eclipse.jgit.lib;

import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

import java.io.UnsupportedEncodingException;

import org.junit.Test;

public class ConstantsEncodingTest {
	@Test
	public void testEncodeASCII_SimpleASCII()
			throws UnsupportedEncodingException {
		final String src = "abc";
		final byte[] exp = { 'a', 'b', 'c' };
		final byte[] res = Constants.encodeASCII(src);
		assertArrayEquals(exp, res);
		assertEquals(src, new String(res, 0, res.length, "UTF-8"));
	}

	@Test
	public void testEncodeASCII_FailOnNonASCII() {
		final String src = "Ūnĭcōde̽";
		try {
			Constants.encodeASCII(src);
			fail("Incorrectly accepted a Unicode character");
		} catch (IllegalArgumentException err) {
			assertEquals("Not ASCII string: " + src, err.getMessage());
		}
	}

	@Test
	public void testEncodeASCII_Number13() {
		final long src = 13;
		final byte[] exp = { '1', '3' };
		final byte[] res = Constants.encodeASCII(src);
		assertArrayEquals(exp, res);
	}

	@Test
	public void testEncode_SimpleASCII() throws UnsupportedEncodingException {
		final String src = "abc";
		final byte[] exp = { 'a', 'b', 'c' };
		final byte[] res = Constants.encode(src);
		assertArrayEquals(exp, res);
		assertEquals(src, new String(res, 0, res.length, "UTF-8"));
	}

	@Test
	public void testEncode_Unicode() throws UnsupportedEncodingException {
		final String src = "Ūnĭcōde̽";
		final byte[] exp = { (byte) 0xC5, (byte) 0xAA, 0x6E, (byte) 0xC4,
				(byte) 0xAD, 0x63, (byte) 0xC5, (byte) 0x8D, 0x64, 0x65,
				(byte) 0xCC, (byte) 0xBD };
		final byte[] res = Constants.encode(src);
		assertArrayEquals(exp, res);
		assertEquals(src, new String(res, 0, res.length, "UTF-8"));
	}
}