/** * 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. * * Copyright 2012-2016 the original author or authors. */ package org.assertj.db.output; import org.assertj.core.api.Assertions; import org.assertj.db.common.AbstractTest; import org.assertj.db.type.Request; import org.junit.Test; import java.io.ByteArrayOutputStream; import static org.assertj.db.output.Outputs.output; /** * Test the output of requests. * * @author RĂ©gis Pouiller */ public class OutputterRequest_Test extends AbstractTest { /** * This method tests the {@code output} output method. */ @Test public void test_output() throws Exception { Request request = new Request(source, "select * from actor"); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); output(request).toStream(byteArrayOutputStream); Assertions.assertThat(byteArrayOutputStream.toString()).isEqualTo(String.format("['select * from actor' request]%n" + "|-----------|---------|-----------|-------------|-----------|------------|--------------------------------------|%n" + "| | | | | | | |%n" + "| | PRIMARY | ID | NAME | FIRSTNAME | BIRTH | ACTOR_IMDB |%n" + "| | KEY | (NUMBER) | (TEXT) | (TEXT) | (DATE) | (UUID) |%n" + "| | | Index : 0 | Index : 1 | Index : 2 | Index : 3 | Index : 4 |%n" + "|-----------|---------|-----------|-------------|-----------|------------|--------------------------------------|%n" + "| Index : 0 | | 1 | Weaver | Sigourney | 1949-10-08 | 30b443ae-c0c9-4790-9bec-ce1380808435 |%n" + "| Index : 1 | | 2 | Phoenix | Joaquim | 1974-10-28 | 16319617-ae95-4087-9264-d3d21bf611b6 |%n" + "| Index : 2 | | 3 | Worthington | Sam | 1976-08-02 | d735221b-5de5-4112-aa1e-49090cb75ada |%n" + "|-----------|---------|-----------|-------------|-----------|------------|--------------------------------------|%n")); } /** * This method tests the navigation. */ @Test public void test_navigation() throws Exception { Request request = new Request(source, "select * from actor"); RequestOutputter requestOutputter = output(request); RequestRowOutputter requestRowOutputter0 = requestOutputter.row(); RequestRowOutputter requestRowOutputter1 = requestOutputter.row(); RequestRowOutputter requestRowOutputter2 = requestOutputter.row(); RequestOutputter requestOutputterFromRow = requestRowOutputter0.returnToRequest(); RequestRowOutputter requestRowOutputter2_1 = requestOutputter.row(2); RequestRowOutputter requestRowOutputter1_1 = requestOutputter.row(1); RequestRowOutputter requestRowOutputter0_1 = requestOutputter.row(0); RequestRowOutputter requestRowOutputter1_2 = requestRowOutputter0_1.row(); RequestRowOutputter requestRowOutputter2_2 = requestRowOutputter0_1.row(); RequestRowOutputter requestRowOutputter2_3 = requestRowOutputter1_2.row(2); RequestRowOutputter requestRowOutputter1_3 = requestRowOutputter1_2.row(1); RequestRowOutputter requestRowOutputter0_3 = requestRowOutputter1_2.row(0); Assertions.assertThat(requestRowOutputter0).isSameAs(requestRowOutputter0_1).isSameAs(requestRowOutputter0_3); Assertions.assertThat(requestRowOutputter1).isSameAs(requestRowOutputter1_1).isSameAs(requestRowOutputter1_2).isSameAs(requestRowOutputter1_3); Assertions.assertThat(requestRowOutputter2).isSameAs(requestRowOutputter2_1).isSameAs(requestRowOutputter2_2).isSameAs(requestRowOutputter2_3); RequestRowValueOutputter requestRowValueOutputter0 = requestRowOutputter0.value(); RequestRowValueOutputter requestRowValueOutputter1 = requestRowOutputter0.value(); RequestRowValueOutputter requestRowValueOutputter2 = requestRowOutputter0.value(); RequestRowValueOutputter requestRowValueOutputter3 = requestRowOutputter0.value(); RequestOutputter requestOutputterFromRowValue = requestRowValueOutputter0.returnToRow().returnToRequest(); RequestRowValueOutputter requestRowValueOutputter3_1 = requestRowOutputter0.value(3); RequestRowValueOutputter requestRowValueOutputter2_1 = requestRowOutputter0.value(2); RequestRowValueOutputter requestRowValueOutputter1_1 = requestRowOutputter0.value(1); RequestRowValueOutputter requestRowValueOutputter0_1 = requestRowOutputter0.value(0); RequestRowValueOutputter requestRowValueOutputter3_2 = requestRowOutputter0.value("BIRTH"); RequestRowValueOutputter requestRowValueOutputter2_2 = requestRowOutputter0.value("FIRSTNAME"); RequestRowValueOutputter requestRowValueOutputter1_2 = requestRowOutputter0.value("NAME"); RequestRowValueOutputter requestRowValueOutputter0_2 = requestRowOutputter0.value("ID"); RequestRowValueOutputter requestRowValueOutputter1_3 = requestRowValueOutputter0_2.value(); RequestRowValueOutputter requestRowValueOutputter2_3 = requestRowValueOutputter0_2.value(); RequestRowValueOutputter requestRowValueOutputter3_3 = requestRowValueOutputter0_2.value(); RequestRowValueOutputter requestRowValueOutputter3_4 = requestRowValueOutputter1_3.value(3); RequestRowValueOutputter requestRowValueOutputter2_4 = requestRowValueOutputter1_3.value(2); RequestRowValueOutputter requestRowValueOutputter1_4 = requestRowValueOutputter1_3.value(1); RequestRowValueOutputter requestRowValueOutputter0_4 = requestRowValueOutputter1_3.value(0); RequestRowValueOutputter requestRowValueOutputter3_5 = requestRowValueOutputter3_1.value("BIRTH"); RequestRowValueOutputter requestRowValueOutputter2_5 = requestRowValueOutputter3_1.value("FIRSTNAME"); RequestRowValueOutputter requestRowValueOutputter1_5 = requestRowValueOutputter3_1.value("NAME"); RequestRowValueOutputter requestRowValueOutputter0_5 = requestRowValueOutputter3_1.value("ID"); Assertions.assertThat(requestRowValueOutputter0).isSameAs(requestRowValueOutputter0_1).isSameAs(requestRowValueOutputter0_2).isSameAs(requestRowValueOutputter0_4).isSameAs(requestRowValueOutputter0_5); Assertions.assertThat(requestRowValueOutputter1).isSameAs(requestRowValueOutputter1_1).isSameAs(requestRowValueOutputter1_2).isSameAs(requestRowValueOutputter1_3).isSameAs(requestRowValueOutputter1_4).isSameAs(requestRowValueOutputter1_5); Assertions.assertThat(requestRowValueOutputter2).isSameAs(requestRowValueOutputter2_1).isSameAs(requestRowValueOutputter2_2).isSameAs(requestRowValueOutputter2_3).isSameAs(requestRowValueOutputter2_4).isSameAs(requestRowValueOutputter2_5); Assertions.assertThat(requestRowValueOutputter3).isSameAs(requestRowValueOutputter3_1).isSameAs(requestRowValueOutputter3_2).isSameAs(requestRowValueOutputter3_3).isSameAs(requestRowValueOutputter3_4).isSameAs(requestRowValueOutputter3_5); RequestColumnOutputter requestColumnOutputter0 = requestOutputter.column(); RequestColumnOutputter requestColumnOutputter1 = requestOutputter.column(); RequestColumnOutputter requestColumnOutputter2 = requestOutputter.column(); RequestColumnOutputter requestColumnOutputter3 = requestOutputter.column(); RequestOutputter requestOutputterFromColumn = requestColumnOutputter0.returnToRequest(); RequestColumnOutputter requestColumnOutputter3_1 = requestOutputter.column(3); RequestColumnOutputter requestColumnOutputter2_1 = requestOutputter.column(2); RequestColumnOutputter requestColumnOutputter1_1 = requestOutputter.column(1); RequestColumnOutputter requestColumnOutputter0_1 = requestOutputter.column(0); RequestColumnOutputter requestColumnOutputter3_2 = requestOutputter.column("BIRTH"); RequestColumnOutputter requestColumnOutputter2_2 = requestOutputter.column("FIRSTNAME"); RequestColumnOutputter requestColumnOutputter1_2 = requestOutputter.column("NAME"); RequestColumnOutputter requestColumnOutputter0_2 = requestOutputter.column("ID"); RequestColumnOutputter requestColumnOutputter1_3 = requestColumnOutputter0_2.column(); RequestColumnOutputter requestColumnOutputter2_3 = requestColumnOutputter0_2.column(); RequestColumnOutputter requestColumnOutputter3_3 = requestColumnOutputter0_2.column(); RequestColumnOutputter requestColumnOutputter3_4 = requestColumnOutputter1_3.column(3); RequestColumnOutputter requestColumnOutputter2_4 = requestColumnOutputter1_3.column(2); RequestColumnOutputter requestColumnOutputter1_4 = requestColumnOutputter1_3.column(1); RequestColumnOutputter requestColumnOutputter0_4 = requestColumnOutputter1_3.column(0); RequestColumnOutputter requestColumnOutputter3_5 = requestColumnOutputter3_1.column("BIRTH"); RequestColumnOutputter requestColumnOutputter2_5 = requestColumnOutputter3_1.column("FIRSTNAME"); RequestColumnOutputter requestColumnOutputter1_5 = requestColumnOutputter3_1.column("NAME"); RequestColumnOutputter requestColumnOutputter0_5 = requestColumnOutputter3_1.column("ID"); Assertions.assertThat(requestColumnOutputter0).isSameAs(requestColumnOutputter0_1).isSameAs(requestColumnOutputter0_2).isSameAs(requestColumnOutputter0_4).isSameAs(requestColumnOutputter0_5); Assertions.assertThat(requestColumnOutputter1).isSameAs(requestColumnOutputter1_1).isSameAs(requestColumnOutputter1_2).isSameAs(requestColumnOutputter1_3).isSameAs(requestColumnOutputter1_4).isSameAs(requestColumnOutputter1_5); Assertions.assertThat(requestColumnOutputter2).isSameAs(requestColumnOutputter2_1).isSameAs(requestColumnOutputter2_2).isSameAs(requestColumnOutputter2_3).isSameAs(requestColumnOutputter2_4).isSameAs(requestColumnOutputter2_5); Assertions.assertThat(requestColumnOutputter3).isSameAs(requestColumnOutputter3_1).isSameAs(requestColumnOutputter3_2).isSameAs(requestColumnOutputter3_3).isSameAs(requestColumnOutputter3_4).isSameAs(requestColumnOutputter3_5); RequestColumnValueOutputter requestColumnValueOutputter0 = requestColumnOutputter0.value(); RequestColumnValueOutputter requestColumnValueOutputter1 = requestColumnOutputter0.value(); RequestColumnValueOutputter requestColumnValueOutputter2 = requestColumnOutputter0.value(); RequestOutputter requestOutputterFromColumnValue = requestColumnValueOutputter0.returnToColumn().returnToRequest(); RequestColumnValueOutputter requestColumnValueOutputter2_1 = requestColumnOutputter0.value(2); RequestColumnValueOutputter requestColumnValueOutputter1_1 = requestColumnOutputter0.value(1); RequestColumnValueOutputter requestColumnValueOutputter0_1 = requestColumnOutputter0.value(0); RequestColumnValueOutputter requestColumnValueOutputter1_2 = requestColumnValueOutputter0_1.value(); RequestColumnValueOutputter requestColumnValueOutputter2_2 = requestColumnValueOutputter0_1.value(); RequestColumnValueOutputter requestColumnValueOutputter2_3 = requestColumnValueOutputter1_2.value(2); RequestColumnValueOutputter requestColumnValueOutputter1_3 = requestColumnValueOutputter1_2.value(1); RequestColumnValueOutputter requestColumnValueOutputter0_3 = requestColumnValueOutputter1_2.value(0); Assertions.assertThat(requestColumnValueOutputter0).isSameAs(requestColumnValueOutputter0_1).isSameAs(requestColumnValueOutputter0_3); Assertions.assertThat(requestColumnValueOutputter1).isSameAs(requestColumnValueOutputter1_1).isSameAs(requestColumnValueOutputter1_2).isSameAs(requestColumnValueOutputter1_3); Assertions.assertThat(requestColumnValueOutputter2).isSameAs(requestColumnValueOutputter2_1).isSameAs(requestColumnValueOutputter2_2).isSameAs(requestColumnValueOutputter2_3); Assertions.assertThat(requestOutputter).isSameAs(requestOutputterFromRow).isSameAs(requestOutputterFromRowValue).isSameAs(requestOutputterFromColumn).isSameAs(requestOutputterFromColumnValue); } }