Passed
Push — main ( 1152fc...a2dce0 )
by Siad
07:08
created
tests/Phing/Task/Optional/PDODelimitersTest.php 5 patches
Indentation   -141 removed lines patch added patch discarded remove patch
@@ -70,144 +70,3 @@
 block discarded – undo
70 70
         // for some reason default splitter mangles spaces on subsequent lines
71 71
         $expected = [
72 72
             <<<'SQL'
73
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
74
-                SQL,
75
-            <<<'SQL'
76
-                delete
77
-                 from
78
-                 foo where bar = 'some value'
79
-                SQL,
80
-            <<<'SQL'
81
-                update dump -- I should not be ignored
82
-                 set message = 'I am a string with \\ backslash \' escapes and semicolons;'
83
-                SQL,
84
-            <<<'SQL'
85
-                create procedure setfoo(newfoo int)
86
-                 begin
87
-                 set @foo = newfoo;
88
-                 end
89
-                SQL,
90
-            <<<'SQL'
91
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
92
-                SQL,
93
-        ];
94
-        // and insists on "\n" linebreaks
95
-        foreach ($expected as &$query) {
96
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
97
-        }
98
-
99
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-normal.sql'));
100
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
101
-        $this->project->setProperty('bar.value', 'some value');
102
-        $this->project->executeTarget('test');
103
-
104
-        $this->assertEquals($expected, $this->queries);
105
-    }
106
-
107
-    public function testDelimiterTypeRow(): void
108
-    {
109
-        // for some reason default splitter mangles spaces on subsequent lines
110
-        $expected = [
111
-            <<<'SQL'
112
-                insert into "duh" (foo) values ('duh')
113
-                SQL,
114
-            <<<'SQL'
115
-                update "duh?" -- I should not be ignored
116
-                 set foo = 'some value'
117
-                SQL,
118
-            <<<'SQL'
119
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
120
-                SQL,
121
-        ];
122
-        // and insists on "\n" linebreaks
123
-        foreach ($expected as &$query) {
124
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
125
-        }
126
-
127
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-row.sql'));
128
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_ROW);
129
-        $this->mockTask->setDelimiter('duh');
130
-        $this->project->setProperty('foo.value', 'some value');
131
-        $this->project->executeTarget('test');
132
-
133
-        $this->assertEquals($expected, $this->queries);
134
-    }
135
-
136
-    /**
137
-     * Checks that PDOSQLExecTask properly understands PostgreSQL dialect
138
-     * (especially "dollar quoting") when working with 'pgsql:' URLs.
139
-     *
140
-     * @see http://www.phing.info/trac/ticket/499
141
-     * @see http://www.postgresql.org/docs/9.0/interactive/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING
142
-     */
143
-    public function testRequest499(): void
144
-    {
145
-        $expected = [
146
-            <<<'SQL'
147
-                select 1
148
-                # 2
149
-                SQL,
150
-            <<<'SQL'
151
-                select 'foo'
152
-                // 'bar'
153
-                SQL,
154
-            <<<'SQL'
155
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
156
-                SQL,
157
-            <<<'SQL'
158
-                create function foo(text)
159
-                returns boolean as
160
-                $function$
161
-                BEGIN
162
-                    RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
163
-                END;
164
-                $function$
165
-                language plpgsql
166
-                SQL,
167
-            <<<'SQL'
168
-                CREATE FUNCTION phingPDOtest() RETURNS "trigger"
169
-                    AS $_X$
170
-                if (1)
171
-                {
172
-                    # All is well - just continue
173
-
174
-                    return;
175
-                }
176
-                else
177
-                {
178
-                    # Not good - this is probably a fatal error!
179
-                    elog(ERROR,"True is not true");
180
-
181
-                    return "SKIP";
182
-                }
183
-                $_X$
184
-                    LANGUAGE plperl
185
-                SQL,
186
-            "insert into foo (bar) \nvalues ('some value')",
187
-            <<<'SQL'
188
-                insert into foo (bar) values ($$ a dollar-quoted string containing a few quotes ' ", a $placeholder$ and a semicolon;$$)
189
-                SQL,
190
-            <<<'SQL'
191
-                create rule blah_insert
192
-                as on insert to blah do instead (
193
-                    insert into foo values (new.id, 'blah');
194
-                    insert into bar values (new.id, 'blah-blah');
195
-                )
196
-                SQL,
197
-            <<<'SQL'
198
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
199
-                SQL,
200
-        ];
201
-        foreach ($expected as &$query) {
202
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
203
-        }
204
-
205
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-pgsql.sql'));
206
-        $this->mockTask->setUrl('pgsql:host=localhost;dbname=phing');
207
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
208
-        $this->project->setProperty('bar.value', 'some value');
209
-        $this->project->executeTarget('test');
210
-
211
-        $this->assertEquals($expected, $this->queries);
212
-    }
213
-}
Please login to merge, or discard this patch.
Switch Indentation   -141 removed lines patch added patch discarded remove patch
@@ -70,144 +70,3 @@
 block discarded – undo
70 70
         // for some reason default splitter mangles spaces on subsequent lines
71 71
         $expected = [
72 72
             <<<'SQL'
73
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
74
-                SQL,
75
-            <<<'SQL'
76
-                delete
77
-                 from
78
-                 foo where bar = 'some value'
79
-                SQL,
80
-            <<<'SQL'
81
-                update dump -- I should not be ignored
82
-                 set message = 'I am a string with \\ backslash \' escapes and semicolons;'
83
-                SQL,
84
-            <<<'SQL'
85
-                create procedure setfoo(newfoo int)
86
-                 begin
87
-                 set @foo = newfoo;
88
-                 end
89
-                SQL,
90
-            <<<'SQL'
91
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
92
-                SQL,
93
-        ];
94
-        // and insists on "\n" linebreaks
95
-        foreach ($expected as &$query) {
96
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
97
-        }
98
-
99
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-normal.sql'));
100
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
101
-        $this->project->setProperty('bar.value', 'some value');
102
-        $this->project->executeTarget('test');
103
-
104
-        $this->assertEquals($expected, $this->queries);
105
-    }
106
-
107
-    public function testDelimiterTypeRow(): void
108
-    {
109
-        // for some reason default splitter mangles spaces on subsequent lines
110
-        $expected = [
111
-            <<<'SQL'
112
-                insert into "duh" (foo) values ('duh')
113
-                SQL,
114
-            <<<'SQL'
115
-                update "duh?" -- I should not be ignored
116
-                 set foo = 'some value'
117
-                SQL,
118
-            <<<'SQL'
119
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
120
-                SQL,
121
-        ];
122
-        // and insists on "\n" linebreaks
123
-        foreach ($expected as &$query) {
124
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
125
-        }
126
-
127
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-row.sql'));
128
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_ROW);
129
-        $this->mockTask->setDelimiter('duh');
130
-        $this->project->setProperty('foo.value', 'some value');
131
-        $this->project->executeTarget('test');
132
-
133
-        $this->assertEquals($expected, $this->queries);
134
-    }
135
-
136
-    /**
137
-     * Checks that PDOSQLExecTask properly understands PostgreSQL dialect
138
-     * (especially "dollar quoting") when working with 'pgsql:' URLs.
139
-     *
140
-     * @see http://www.phing.info/trac/ticket/499
141
-     * @see http://www.postgresql.org/docs/9.0/interactive/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING
142
-     */
143
-    public function testRequest499(): void
144
-    {
145
-        $expected = [
146
-            <<<'SQL'
147
-                select 1
148
-                # 2
149
-                SQL,
150
-            <<<'SQL'
151
-                select 'foo'
152
-                // 'bar'
153
-                SQL,
154
-            <<<'SQL'
155
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
156
-                SQL,
157
-            <<<'SQL'
158
-                create function foo(text)
159
-                returns boolean as
160
-                $function$
161
-                BEGIN
162
-                    RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
163
-                END;
164
-                $function$
165
-                language plpgsql
166
-                SQL,
167
-            <<<'SQL'
168
-                CREATE FUNCTION phingPDOtest() RETURNS "trigger"
169
-                    AS $_X$
170
-                if (1)
171
-                {
172
-                    # All is well - just continue
173
-
174
-                    return;
175
-                }
176
-                else
177
-                {
178
-                    # Not good - this is probably a fatal error!
179
-                    elog(ERROR,"True is not true");
180
-
181
-                    return "SKIP";
182
-                }
183
-                $_X$
184
-                    LANGUAGE plperl
185
-                SQL,
186
-            "insert into foo (bar) \nvalues ('some value')",
187
-            <<<'SQL'
188
-                insert into foo (bar) values ($$ a dollar-quoted string containing a few quotes ' ", a $placeholder$ and a semicolon;$$)
189
-                SQL,
190
-            <<<'SQL'
191
-                create rule blah_insert
192
-                as on insert to blah do instead (
193
-                    insert into foo values (new.id, 'blah');
194
-                    insert into bar values (new.id, 'blah-blah');
195
-                )
196
-                SQL,
197
-            <<<'SQL'
198
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
199
-                SQL,
200
-        ];
201
-        foreach ($expected as &$query) {
202
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
203
-        }
204
-
205
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-pgsql.sql'));
206
-        $this->mockTask->setUrl('pgsql:host=localhost;dbname=phing');
207
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
208
-        $this->project->setProperty('bar.value', 'some value');
209
-        $this->project->executeTarget('test');
210
-
211
-        $this->assertEquals($expected, $this->queries);
212
-    }
213
-}
Please login to merge, or discard this patch.
Spacing   -141 removed lines patch added patch discarded remove patch
@@ -70,144 +70,3 @@
 block discarded – undo
70 70
         // for some reason default splitter mangles spaces on subsequent lines
71 71
         $expected = [
72 72
             <<<'SQL'
73
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
74
-                SQL,
75
-            <<<'SQL'
76
-                delete
77
-                 from
78
-                 foo where bar = 'some value'
79
-                SQL,
80
-            <<<'SQL'
81
-                update dump -- I should not be ignored
82
-                 set message = 'I am a string with \\ backslash \' escapes and semicolons;'
83
-                SQL,
84
-            <<<'SQL'
85
-                create procedure setfoo(newfoo int)
86
-                 begin
87
-                 set @foo = newfoo;
88
-                 end
89
-                SQL,
90
-            <<<'SQL'
91
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
92
-                SQL,
93
-        ];
94
-        // and insists on "\n" linebreaks
95
-        foreach ($expected as &$query) {
96
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
97
-        }
98
-
99
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-normal.sql'));
100
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
101
-        $this->project->setProperty('bar.value', 'some value');
102
-        $this->project->executeTarget('test');
103
-
104
-        $this->assertEquals($expected, $this->queries);
105
-    }
106
-
107
-    public function testDelimiterTypeRow(): void
108
-    {
109
-        // for some reason default splitter mangles spaces on subsequent lines
110
-        $expected = [
111
-            <<<'SQL'
112
-                insert into "duh" (foo) values ('duh')
113
-                SQL,
114
-            <<<'SQL'
115
-                update "duh?" -- I should not be ignored
116
-                 set foo = 'some value'
117
-                SQL,
118
-            <<<'SQL'
119
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
120
-                SQL,
121
-        ];
122
-        // and insists on "\n" linebreaks
123
-        foreach ($expected as &$query) {
124
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
125
-        }
126
-
127
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-row.sql'));
128
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_ROW);
129
-        $this->mockTask->setDelimiter('duh');
130
-        $this->project->setProperty('foo.value', 'some value');
131
-        $this->project->executeTarget('test');
132
-
133
-        $this->assertEquals($expected, $this->queries);
134
-    }
135
-
136
-    /**
137
-     * Checks that PDOSQLExecTask properly understands PostgreSQL dialect
138
-     * (especially "dollar quoting") when working with 'pgsql:' URLs.
139
-     *
140
-     * @see http://www.phing.info/trac/ticket/499
141
-     * @see http://www.postgresql.org/docs/9.0/interactive/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING
142
-     */
143
-    public function testRequest499(): void
144
-    {
145
-        $expected = [
146
-            <<<'SQL'
147
-                select 1
148
-                # 2
149
-                SQL,
150
-            <<<'SQL'
151
-                select 'foo'
152
-                // 'bar'
153
-                SQL,
154
-            <<<'SQL'
155
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
156
-                SQL,
157
-            <<<'SQL'
158
-                create function foo(text)
159
-                returns boolean as
160
-                $function$
161
-                BEGIN
162
-                    RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
163
-                END;
164
-                $function$
165
-                language plpgsql
166
-                SQL,
167
-            <<<'SQL'
168
-                CREATE FUNCTION phingPDOtest() RETURNS "trigger"
169
-                    AS $_X$
170
-                if (1)
171
-                {
172
-                    # All is well - just continue
173
-
174
-                    return;
175
-                }
176
-                else
177
-                {
178
-                    # Not good - this is probably a fatal error!
179
-                    elog(ERROR,"True is not true");
180
-
181
-                    return "SKIP";
182
-                }
183
-                $_X$
184
-                    LANGUAGE plperl
185
-                SQL,
186
-            "insert into foo (bar) \nvalues ('some value')",
187
-            <<<'SQL'
188
-                insert into foo (bar) values ($$ a dollar-quoted string containing a few quotes ' ", a $placeholder$ and a semicolon;$$)
189
-                SQL,
190
-            <<<'SQL'
191
-                create rule blah_insert
192
-                as on insert to blah do instead (
193
-                    insert into foo values (new.id, 'blah');
194
-                    insert into bar values (new.id, 'blah-blah');
195
-                )
196
-                SQL,
197
-            <<<'SQL'
198
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
199
-                SQL,
200
-        ];
201
-        foreach ($expected as &$query) {
202
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
203
-        }
204
-
205
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-pgsql.sql'));
206
-        $this->mockTask->setUrl('pgsql:host=localhost;dbname=phing');
207
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
208
-        $this->project->setProperty('bar.value', 'some value');
209
-        $this->project->executeTarget('test');
210
-
211
-        $this->assertEquals($expected, $this->queries);
212
-    }
213
-}
Please login to merge, or discard this patch.
Braces   -141 removed lines patch added patch discarded remove patch
@@ -70,144 +70,3 @@
 block discarded – undo
70 70
         // for some reason default splitter mangles spaces on subsequent lines
71 71
         $expected = [
72 72
             <<<'SQL'
73
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
74
-                SQL,
75
-            <<<'SQL'
76
-                delete
77
-                 from
78
-                 foo where bar = 'some value'
79
-                SQL,
80
-            <<<'SQL'
81
-                update dump -- I should not be ignored
82
-                 set message = 'I am a string with \\ backslash \' escapes and semicolons;'
83
-                SQL,
84
-            <<<'SQL'
85
-                create procedure setfoo(newfoo int)
86
-                 begin
87
-                 set @foo = newfoo;
88
-                 end
89
-                SQL,
90
-            <<<'SQL'
91
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
92
-                SQL,
93
-        ];
94
-        // and insists on "\n" linebreaks
95
-        foreach ($expected as &$query) {
96
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
97
-        }
98
-
99
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-normal.sql'));
100
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
101
-        $this->project->setProperty('bar.value', 'some value');
102
-        $this->project->executeTarget('test');
103
-
104
-        $this->assertEquals($expected, $this->queries);
105
-    }
106
-
107
-    public function testDelimiterTypeRow(): void
108
-    {
109
-        // for some reason default splitter mangles spaces on subsequent lines
110
-        $expected = [
111
-            <<<'SQL'
112
-                insert into "duh" (foo) values ('duh')
113
-                SQL,
114
-            <<<'SQL'
115
-                update "duh?" -- I should not be ignored
116
-                 set foo = 'some value'
117
-                SQL,
118
-            <<<'SQL'
119
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
120
-                SQL,
121
-        ];
122
-        // and insists on "\n" linebreaks
123
-        foreach ($expected as &$query) {
124
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
125
-        }
126
-
127
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-row.sql'));
128
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_ROW);
129
-        $this->mockTask->setDelimiter('duh');
130
-        $this->project->setProperty('foo.value', 'some value');
131
-        $this->project->executeTarget('test');
132
-
133
-        $this->assertEquals($expected, $this->queries);
134
-    }
135
-
136
-    /**
137
-     * Checks that PDOSQLExecTask properly understands PostgreSQL dialect
138
-     * (especially "dollar quoting") when working with 'pgsql:' URLs.
139
-     *
140
-     * @see http://www.phing.info/trac/ticket/499
141
-     * @see http://www.postgresql.org/docs/9.0/interactive/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING
142
-     */
143
-    public function testRequest499(): void
144
-    {
145
-        $expected = [
146
-            <<<'SQL'
147
-                select 1
148
-                # 2
149
-                SQL,
150
-            <<<'SQL'
151
-                select 'foo'
152
-                // 'bar'
153
-                SQL,
154
-            <<<'SQL'
155
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
156
-                SQL,
157
-            <<<'SQL'
158
-                create function foo(text)
159
-                returns boolean as
160
-                $function$
161
-                BEGIN
162
-                    RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
163
-                END;
164
-                $function$
165
-                language plpgsql
166
-                SQL,
167
-            <<<'SQL'
168
-                CREATE FUNCTION phingPDOtest() RETURNS "trigger"
169
-                    AS $_X$
170
-                if (1)
171
-                {
172
-                    # All is well - just continue
173
-
174
-                    return;
175
-                }
176
-                else
177
-                {
178
-                    # Not good - this is probably a fatal error!
179
-                    elog(ERROR,"True is not true");
180
-
181
-                    return "SKIP";
182
-                }
183
-                $_X$
184
-                    LANGUAGE plperl
185
-                SQL,
186
-            "insert into foo (bar) \nvalues ('some value')",
187
-            <<<'SQL'
188
-                insert into foo (bar) values ($$ a dollar-quoted string containing a few quotes ' ", a $placeholder$ and a semicolon;$$)
189
-                SQL,
190
-            <<<'SQL'
191
-                create rule blah_insert
192
-                as on insert to blah do instead (
193
-                    insert into foo values (new.id, 'blah');
194
-                    insert into bar values (new.id, 'blah-blah');
195
-                )
196
-                SQL,
197
-            <<<'SQL'
198
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
199
-                SQL,
200
-        ];
201
-        foreach ($expected as &$query) {
202
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
203
-        }
204
-
205
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-pgsql.sql'));
206
-        $this->mockTask->setUrl('pgsql:host=localhost;dbname=phing');
207
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
208
-        $this->project->setProperty('bar.value', 'some value');
209
-        $this->project->executeTarget('test');
210
-
211
-        $this->assertEquals($expected, $this->queries);
212
-    }
213
-}
Please login to merge, or discard this patch.
Upper-Lower-Casing   -141 removed lines patch added patch discarded remove patch
@@ -70,144 +70,3 @@
 block discarded – undo
70 70
         // for some reason default splitter mangles spaces on subsequent lines
71 71
         $expected = [
72 72
             <<<'SQL'
73
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
74
-                SQL,
75
-            <<<'SQL'
76
-                delete
77
-                 from
78
-                 foo where bar = 'some value'
79
-                SQL,
80
-            <<<'SQL'
81
-                update dump -- I should not be ignored
82
-                 set message = 'I am a string with \\ backslash \' escapes and semicolons;'
83
-                SQL,
84
-            <<<'SQL'
85
-                create procedure setfoo(newfoo int)
86
-                 begin
87
-                 set @foo = newfoo;
88
-                 end
89
-                SQL,
90
-            <<<'SQL'
91
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
92
-                SQL,
93
-        ];
94
-        // and insists on "\n" linebreaks
95
-        foreach ($expected as &$query) {
96
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
97
-        }
98
-
99
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-normal.sql'));
100
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
101
-        $this->project->setProperty('bar.value', 'some value');
102
-        $this->project->executeTarget('test');
103
-
104
-        $this->assertEquals($expected, $this->queries);
105
-    }
106
-
107
-    public function testDelimiterTypeRow(): void
108
-    {
109
-        // for some reason default splitter mangles spaces on subsequent lines
110
-        $expected = [
111
-            <<<'SQL'
112
-                insert into "duh" (foo) values ('duh')
113
-                SQL,
114
-            <<<'SQL'
115
-                update "duh?" -- I should not be ignored
116
-                 set foo = 'some value'
117
-                SQL,
118
-            <<<'SQL'
119
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
120
-                SQL,
121
-        ];
122
-        // and insists on "\n" linebreaks
123
-        foreach ($expected as &$query) {
124
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
125
-        }
126
-
127
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-row.sql'));
128
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_ROW);
129
-        $this->mockTask->setDelimiter('duh');
130
-        $this->project->setProperty('foo.value', 'some value');
131
-        $this->project->executeTarget('test');
132
-
133
-        $this->assertEquals($expected, $this->queries);
134
-    }
135
-
136
-    /**
137
-     * Checks that PDOSQLExecTask properly understands PostgreSQL dialect
138
-     * (especially "dollar quoting") when working with 'pgsql:' URLs.
139
-     *
140
-     * @see http://www.phing.info/trac/ticket/499
141
-     * @see http://www.postgresql.org/docs/9.0/interactive/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING
142
-     */
143
-    public function testRequest499(): void
144
-    {
145
-        $expected = [
146
-            <<<'SQL'
147
-                select 1
148
-                # 2
149
-                SQL,
150
-            <<<'SQL'
151
-                select 'foo'
152
-                // 'bar'
153
-                SQL,
154
-            <<<'SQL'
155
-                insert into foo (bar, "strange;name""indeed") values ('bar''s value containing ;', 'a value for strange named column')
156
-                SQL,
157
-            <<<'SQL'
158
-                create function foo(text)
159
-                returns boolean as
160
-                $function$
161
-                BEGIN
162
-                    RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
163
-                END;
164
-                $function$
165
-                language plpgsql
166
-                SQL,
167
-            <<<'SQL'
168
-                CREATE FUNCTION phingPDOtest() RETURNS "trigger"
169
-                    AS $_X$
170
-                if (1)
171
-                {
172
-                    # All is well - just continue
173
-
174
-                    return;
175
-                }
176
-                else
177
-                {
178
-                    # Not good - this is probably a fatal error!
179
-                    elog(ERROR,"True is not true");
180
-
181
-                    return "SKIP";
182
-                }
183
-                $_X$
184
-                    LANGUAGE plperl
185
-                SQL,
186
-            "insert into foo (bar) \nvalues ('some value')",
187
-            <<<'SQL'
188
-                insert into foo (bar) values ($$ a dollar-quoted string containing a few quotes ' ", a $placeholder$ and a semicolon;$$)
189
-                SQL,
190
-            <<<'SQL'
191
-                create rule blah_insert
192
-                as on insert to blah do instead (
193
-                    insert into foo values (new.id, 'blah');
194
-                    insert into bar values (new.id, 'blah-blah');
195
-                )
196
-                SQL,
197
-            <<<'SQL'
198
-                insert into dump (message) values ('I am a statement not ending with a delimiter')
199
-                SQL,
200
-        ];
201
-        foreach ($expected as &$query) {
202
-            $query = str_replace(["\n\n", "\r"], ["\n", ''], $query);
203
-        }
204
-
205
-        $this->mockTask->setSrc(new File(PHING_TEST_BASE . '/etc/tasks/ext/pdo/delimiters-pgsql.sql'));
206
-        $this->mockTask->setUrl('pgsql:host=localhost;dbname=phing');
207
-        $this->mockTask->setDelimiterType(PDOSQLExecTask::DELIM_NORMAL);
208
-        $this->project->setProperty('bar.value', 'some value');
209
-        $this->project->executeTarget('test');
210
-
211
-        $this->assertEquals($expected, $this->queries);
212
-    }
213
-}
Please login to merge, or discard this patch.