1b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak/* 2b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * Copyright 2017, The Android Open Source Project 3b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * 4b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * Licensed under the Apache License, Version 2.0 (the "License"); 5b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * you may not use this file except in compliance with the License. 6b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * You may obtain a copy of the License at 7b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * 8b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * http://www.apache.org/licenses/LICENSE-2.0 9b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * 10b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * Unless required by applicable law or agreed to in writing, software 11b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * distributed under the License is distributed on an "AS IS" BASIS, 12b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * See the License for the specific language governing permissions and 14b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak * limitations under the License. 15b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak */ 16b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakpackage com.android.managedprovisioning.common; 17b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 18b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport static org.hamcrest.CoreMatchers.equalTo; 19b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport static org.junit.Assert.assertThat; 20b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 21b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport static java.util.Arrays.asList; 22b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport static java.util.Collections.emptyList; 23b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport static java.util.Collections.singletonList; 24b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 25b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport android.content.res.Resources; 26b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport android.support.test.InstrumentationRegistry; 2789db5ec7756b796732c8865df8276a16116d235eVictor Changimport android.support.test.filters.SmallTest; 28b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 29b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport org.junit.After; 30b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport org.junit.Before; 31b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport org.junit.Test; 32b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 33b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport java.util.List; 34b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakimport java.util.Locale; 35b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 3689db5ec7756b796732c8865df8276a16116d235eVictor Chang 3789db5ec7756b796732c8865df8276a16116d235eVictor Chang@SmallTest 38b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzakpublic class StringConcatenatorTest { 39b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak private StringConcatenator mInstance; 40b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak private LocaleTestUtils mLocaleTestUtils; 41b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 42b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @Before 43b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void setUp() throws Exception { 44b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak mLocaleTestUtils = new LocaleTestUtils(InstrumentationRegistry.getTargetContext()); 45a0b945e9f65a9cb5362072d1e669db5c31c194e3Jakub Gielzak mLocaleTestUtils.setLocale(Locale.US); // sets a stable locale so tests behave consistently 46b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 47b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak Resources resources = InstrumentationRegistry.getTargetContext().getResources(); 48b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak mInstance = new StringConcatenator(resources); 49b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 50b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 51b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @After 52b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void tearDown() throws Exception { 53b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak mLocaleTestUtils.restoreLocale(); 54b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 55b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 56b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @Test 57b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void joinNull() { 58b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak assertCorrect(null, null); 59b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 60b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 61b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @Test 62b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void joinEmpty() { 63b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak assertCorrect(emptyList(), ""); 64b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 65b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 66b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @Test 67b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void joinOne() { 68b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak assertCorrect(singletonList("word1"), "word1"); 69b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 70b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 71b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @Test 72b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void joinTwo() { 73a0b945e9f65a9cb5362072d1e669db5c31c194e3Jakub Gielzak assertCorrect(asList("word1", "word2"), "word1 and word2"); 74b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 75b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 76b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @Test 77b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void joinThree() { 7857d7cfbcd9ff8f4d8c437df630965c89fbd953fbJakub Gielzak assertCorrect(asList("word1", "word2", "word3"), "word1, word2, and word3"); 79b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 80b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 81b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak @Test 82b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak public void joinMany() { 83b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak assertCorrect(asList("word1", "word2", "word3", "word4", "word5", "word6", "word7"), 8457d7cfbcd9ff8f4d8c437df630965c89fbd953fbJakub Gielzak "word1, word2, word3, word4, word5, word6, and word7" 85b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak ); 86b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 87b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak 88b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak private void assertCorrect(List<String> input, String expected) { 89b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak assertThat(mInstance.join(input), equalTo(expected)); 90b9a9b872b7bd51a738dfef1b55fe1990d3ecb309Jakub Gielzak } 91a0b945e9f65a9cb5362072d1e669db5c31c194e3Jakub Gielzak} 92