Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-1295

Add testing utility for table creation, population, and checking query results

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      Mostly due to the way the JDBC is structured in general, it's relatively painful to create a simple test case that just creates a simple table, populates it with a couple of rows, and checks the output of a query.

      Adding to this is the fact that there isn't really a single "right way" to write simple unit tests in Phoenix. Some tests try to cleanly close statements, ResultsSets, and Connections, while others don't. New tests of this sort are often created by first copying an existing test.

      The end results is that a couple of simple test cases to test a new built-in function often end up being mostly wresting with JDBC, with the actual test case getting largely hidden in the noise.

      The purpose of this ticket is to propose a utility to simplify creating tables, populating them, and verifying the output.

      The general API I have in mind is would look like this:

           QueryTestUtil.on(jdbcUrl)
                .createTable("testtable",
                    "id integer not null primary key",
                    "name varchar")
                .withRows(
                    1, "name1",
                    2, "name2",
                    3, "othername")
                .verifyQueryResults(
                    "select id, name from testtable where name like 'name%'",
                    1, "name1",
                    2, "name2");
      

      The intention is to make it much less painful to write tests, and also to replace as enough existing test code to use this pattern so that new tests being created based on existing code will also follow this pattern.

      Attachments

        1. PHOENIX-1295-WIP1.patch
          156 kB
          Gabriel Reid

        Activity

          People

            Unassigned Unassigned
            gabriel.reid Gabriel Reid
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: