| /* |
| * Copyright (C) 2009, 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.util; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertFalse; |
| import static org.junit.Assert.assertThrows; |
| import static org.junit.Assert.assertTrue; |
| |
| import org.junit.Test; |
| |
| public class StringUtilsTest { |
| @Test |
| public void testToLowerCaseChar() { |
| assertEquals('a', StringUtils.toLowerCase('A')); |
| assertEquals('z', StringUtils.toLowerCase('Z')); |
| |
| assertEquals('a', StringUtils.toLowerCase('a')); |
| assertEquals('z', StringUtils.toLowerCase('z')); |
| |
| assertEquals((char) 0, StringUtils.toLowerCase((char) 0)); |
| assertEquals((char) 0xffff, StringUtils.toLowerCase((char) 0xffff)); |
| } |
| |
| @Test |
| public void testToLowerCaseString() { |
| assertEquals("\n abcdefghijklmnopqrstuvwxyz\n", StringUtils |
| .toLowerCase("\n ABCDEFGHIJKLMNOPQRSTUVWXYZ\n")); |
| } |
| |
| @Test |
| public void testEqualsIgnoreCase1() { |
| final String a = "FOO"; |
| assertTrue(StringUtils.equalsIgnoreCase(a, a)); |
| } |
| |
| @Test |
| public void testEqualsIgnoreCase2() { |
| assertFalse(StringUtils.equalsIgnoreCase("a", "")); |
| } |
| |
| @Test |
| public void testEqualsIgnoreCase3() { |
| assertFalse(StringUtils.equalsIgnoreCase("a", "b")); |
| assertFalse(StringUtils.equalsIgnoreCase("ac", "ab")); |
| } |
| |
| @Test |
| public void testEqualsIgnoreCase4() { |
| assertTrue(StringUtils.equalsIgnoreCase("a", "a")); |
| assertTrue(StringUtils.equalsIgnoreCase("A", "a")); |
| assertTrue(StringUtils.equalsIgnoreCase("a", "A")); |
| } |
| |
| @Test |
| public void testReplaceLineBreaks() { |
| assertEquals("a b c ", |
| StringUtils.replaceLineBreaksWithSpace("a b\nc\r")); |
| assertEquals("a b c ", |
| StringUtils.replaceLineBreaksWithSpace("a b\nc\n")); |
| assertEquals("a b c ", |
| StringUtils.replaceLineBreaksWithSpace("a b\nc\r\n")); |
| assertEquals("a b c d", |
| StringUtils.replaceLineBreaksWithSpace("a\r\nb\nc d")); |
| } |
| |
| @Test |
| public void testFormatWithSuffix() { |
| assertEquals("1023", StringUtils.formatWithSuffix(1023)); |
| assertEquals("1k", StringUtils.formatWithSuffix(1024)); |
| assertEquals("1025", StringUtils.formatWithSuffix(1025)); |
| assertEquals("1048575", StringUtils.formatWithSuffix(1024 * 1024 - 1)); |
| assertEquals("1m", StringUtils.formatWithSuffix(1024 * 1024)); |
| assertEquals("1048577", StringUtils.formatWithSuffix(1024 * 1024 + 1)); |
| assertEquals("1073741823", |
| StringUtils.formatWithSuffix(1024 * 1024 * 1024 - 1)); |
| assertEquals("1g", StringUtils.formatWithSuffix(1024 * 1024 * 1024)); |
| assertEquals("1073741825", |
| StringUtils.formatWithSuffix(1024 * 1024 * 1024 + 1)); |
| assertEquals("3k", StringUtils.formatWithSuffix(3 * 1024)); |
| assertEquals("3m", StringUtils.formatWithSuffix(3 * 1024 * 1024)); |
| assertEquals("2050k", |
| StringUtils.formatWithSuffix(2 * 1024 * 1024 + 2048)); |
| assertEquals("3g", |
| StringUtils.formatWithSuffix(3L * 1024 * 1024 * 1024)); |
| assertEquals("3000", StringUtils.formatWithSuffix(3000)); |
| assertEquals("3000000", StringUtils.formatWithSuffix(3_000_000)); |
| assertEquals("1953125k", StringUtils.formatWithSuffix(2_000_000_000)); |
| assertEquals("2000000010", StringUtils.formatWithSuffix(2_000_000_010)); |
| assertEquals("3000000000", |
| StringUtils.formatWithSuffix(3_000_000_000L)); |
| } |
| |
| @Test |
| public void testParseWithSuffix() { |
| assertEquals(1024, StringUtils.parseIntWithSuffix("1k", true)); |
| assertEquals(1024, StringUtils.parseIntWithSuffix("1 k", true)); |
| assertEquals(1024, StringUtils.parseIntWithSuffix("1 k", true)); |
| assertEquals(1024, StringUtils.parseIntWithSuffix(" \t1 k \n", true)); |
| assertEquals(1024, StringUtils.parseIntWithSuffix("1k", false)); |
| assertEquals(1024, StringUtils.parseIntWithSuffix("1K", false)); |
| assertEquals(1024 * 1024, StringUtils.parseIntWithSuffix("1m", false)); |
| assertEquals(1024 * 1024, StringUtils.parseIntWithSuffix("1M", false)); |
| assertEquals(-1024 * 1024, |
| StringUtils.parseIntWithSuffix("-1M", false)); |
| assertEquals(1_000_000, |
| StringUtils.parseIntWithSuffix(" 1000000\r\n", false)); |
| assertEquals(1024 * 1024 * 1024, |
| StringUtils.parseIntWithSuffix("1g", false)); |
| assertEquals(1024 * 1024 * 1024, |
| StringUtils.parseIntWithSuffix("1G", false)); |
| assertEquals(3L * 1024 * 1024 * 1024, |
| StringUtils.parseLongWithSuffix("3g", false)); |
| assertEquals(3L * 1024 * 1024 * 1024, |
| StringUtils.parseLongWithSuffix("3G", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseIntWithSuffix("2G", false)); |
| assertEquals(2L * 1024 * 1024 * 1024, |
| StringUtils.parseLongWithSuffix("2G", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("-1m", true)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("-1000", true)); |
| assertThrows(StringIndexOutOfBoundsException.class, |
| () -> StringUtils.parseLongWithSuffix("", false)); |
| assertThrows(StringIndexOutOfBoundsException.class, |
| () -> StringUtils.parseLongWithSuffix(" \t \n", false)); |
| assertThrows(StringIndexOutOfBoundsException.class, |
| () -> StringUtils.parseLongWithSuffix("k", false)); |
| assertThrows(StringIndexOutOfBoundsException.class, |
| () -> StringUtils.parseLongWithSuffix("m", false)); |
| assertThrows(StringIndexOutOfBoundsException.class, |
| () -> StringUtils.parseLongWithSuffix("g", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("1T", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("1t", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("Nonumber", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("0x001f", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("beef", false)); |
| assertThrows(NumberFormatException.class, |
| () -> StringUtils.parseLongWithSuffix("8000000000000000000G", |
| false)); |
| } |
| } |