/* * Copyright (C) 2011 The Android Open Source Project * * 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://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License 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.android.tradefed.util; import junit.framework.TestCase; import java.io.ByteArrayOutputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Unit test for {@link TableFormatter}. */ public class TableFormatterTest extends TestCase { public void testDisplayTable() { List<List<String>> testData = new ArrayList<List<String>>(); testData.add(Arrays.asList("1234", "12", "1234", "1")); testData.add(Arrays.asList("12", "1234", "1", "11")); final String expectedOutput = "1234 12 1234 1 \n" + "12 1234 1 11 \n"; String actualOutput = doDisplayTable(testData); assertEquals(expectedOutput, actualOutput); } /** * Test displaying a table with different sized rows */ public void testDisplayTable_missized() { List<List<String>> testData = new ArrayList<List<String>>(); testData.add(Arrays.asList("1234", "12", "1234")); testData.add(Arrays.asList("12", "1234")); final String expectedOutput = "1234 12 1234 \n" + "12 1234 \n"; String actualOutput = doDisplayTable(testData); assertEquals(expectedOutput, actualOutput); } /** * Call {@link TableFormatter#displayTable(List, PrintWriter)} using given table and return * result as a {@link String} */ private String doDisplayTable(List<List<String>> testData) { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); PrintWriter writer = new PrintWriter(outStream); new TableFormatter().displayTable(testData, writer); writer.flush(); writer.close(); String actualOutput = outStream.toString(); return actualOutput; } }