[jira] [Assigned] (PHOENIX-1295) Add testing utility for table creation, population, and checking query results

2020-01-14 Thread Viraj Jasani (Jira)


 [ 
https://issues.apache.org/jira/browse/PHOENIX-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Viraj Jasani reassigned PHOENIX-1295:
-

Assignee: (was: Viraj Jasani)

> Add testing utility for table creation, population, and checking query results
> --
>
> Key: PHOENIX-1295
> URL: https://issues.apache.org/jira/browse/PHOENIX-1295
> Project: Phoenix
>  Issue Type: Improvement
>Reporter: Gabriel Reid
>Priority: Major
>  Labels: phoenix-hardening
> Attachments: PHOENIX-1295-WIP1.patch
>
>
> 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:
> {code}
>  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");
> {code}
> 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Assigned] (PHOENIX-1295) Add testing utility for table creation, population, and checking query results

2020-01-14 Thread Viraj Jasani (Jira)


 [ 
https://issues.apache.org/jira/browse/PHOENIX-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Viraj Jasani reassigned PHOENIX-1295:
-

Assignee: Viraj Jasani

> Add testing utility for table creation, population, and checking query results
> --
>
> Key: PHOENIX-1295
> URL: https://issues.apache.org/jira/browse/PHOENIX-1295
> Project: Phoenix
>  Issue Type: Improvement
>Reporter: Gabriel Reid
>Assignee: Viraj Jasani
>Priority: Major
>  Labels: phoenix-hardening
> Attachments: PHOENIX-1295-WIP1.patch
>
>
> 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:
> {code}
>  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");
> {code}
> 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)