/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://aws.amazon.com/apache2.0
*
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
* OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and
* limitations under the License.
*/
package com.amazonaws.mobileconnectors.amazonmobileanalytics.internal.core.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import com.amazonaws.util.StringUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
public class StringUtilTest {
@Test
public void isNullOrEmpty_null_string() {
assertTrue(StringUtil.isNullOrEmpty(null));
}
@Test
public void isNullOrEmpty_empty_string() {
assertTrue(StringUtil.isNullOrEmpty(""));
}
@Test
public void isNullOrEmpty_blank_string() {
assertFalse(StringUtil.isNullOrEmpty(" "));
}
@Test
public void isNullOrEmpty_non_blank_string() {
assertFalse(StringUtil.isNullOrEmpty("abcde"));
}
@Test
public void isBlank_empty_string() {
assertTrue(StringUtil.isBlank(""));
}
@Test
public void isBlank_blank_string() {
assertTrue(StringUtil.isBlank(" "));
}
@Test
public void isBlank_non_blank_string() {
assertFalse(StringUtil.isBlank("abcde"));
}
@Test
public void convertStreamToString_test() throws IOException {
String text = "soijweoirj2k3kllsfl";
ByteArrayInputStream stream = new ByteArrayInputStream(text.getBytes(StringUtils.UTF8));
assertEquals(text + "\n", StringUtil.convertStreamToUTF8String(stream));
}
@Test
public void convertStreamToString_multiple_lines_test() throws IOException {
String text = "soijweoirj2k3kllsfl\n2932kljldfjoi2\n";
ByteArrayInputStream stream = new ByteArrayInputStream(text.getBytes(StringUtils.UTF8));
assertEquals(text, StringUtil.convertStreamToUTF8String(stream));
}
@Test
public void trimOrPadString_trimsString() {
assertEquals(StringUtil.trimOrPadString("abcdefg", 7, ' '), "abcdefg");
assertEquals(StringUtil.trimOrPadString("abcdefg", 6, ' '), "bcdefg");
assertEquals(StringUtil.trimOrPadString("abcdefg", 5, ' '), "cdefg");
assertEquals(StringUtil.trimOrPadString("abcdefg", 4, ' '), "defg");
assertEquals(StringUtil.trimOrPadString("abcdefg", 3, ' '), "efg");
assertEquals(StringUtil.trimOrPadString("abcdefg", 2, ' '), "fg");
assertEquals(StringUtil.trimOrPadString("abcdefg", 1, ' '), "g");
assertEquals(StringUtil.trimOrPadString("abcdefg", 0, ' '), "");
}
@Test
public void trimOrPadString_padsString() {
assertEquals(StringUtil.trimOrPadString("abc", 7, '_'), "____abc");
assertEquals(StringUtil.trimOrPadString("abc", 6, '-'), "---abc");
assertEquals(StringUtil.trimOrPadString("abc", 5, '\\'), "\\\\abc");
assertEquals(StringUtil.trimOrPadString("abc", 4, '$'), "$abc");
assertEquals(StringUtil.trimOrPadString("", 10, '&'), "&&&&&&&&&&");
assertEquals(StringUtil.trimOrPadString("", 5, '"'), "\"\"\"\"\"");
assertEquals(StringUtil.trimOrPadString("\b\b", 5, '\n'), "\n\n\n\b\b");
int l = 100;
String s = StringUtil.trimOrPadString("", l, '\\');
assertEquals(s.length(), l);
for (int i = 0; i < s.length(); i++) {
assertEquals(s.charAt(i), '\\');
}
}
@Test
public void trimOrPadString_worksWith_invalidArgs() {
// len < 0
assertEquals(StringUtil.trimOrPadString("abcdefg", -1, ' '), "");
assertEquals(StringUtil.trimOrPadString("abcdefg", -2, ' '), "");
// null string
assertEquals(StringUtil.trimOrPadString(null, 5, '+'), "+++++");
}
}