aboutsummaryrefslogtreecommitdiffstats
path: root/Frameworks/PostgresKit/Tests
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2013-05-21 21:57:57 +0000
committerstuconnolly <stuart02@gmail.com>2013-05-21 21:57:57 +0000
commit9432986de1d25527b133715ab12a8dffc2c5f6b6 (patch)
tree1297927fb1124cf5ee96c6577db504f0386ff489 /Frameworks/PostgresKit/Tests
parent4631fedc1bd61dcf7a51970ffdbf4a62d3319c8a (diff)
downloadsequelpro-9432986de1d25527b133715ab12a8dffc2c5f6b6.tar.gz
sequelpro-9432986de1d25527b133715ab12a8dffc2c5f6b6.tar.bz2
sequelpro-9432986de1d25527b133715ab12a8dffc2c5f6b6.zip
PostgresKit: Add a common integration test case base.
Diffstat (limited to 'Frameworks/PostgresKit/Tests')
-rw-r--r--Frameworks/PostgresKit/Tests/PGDataTypeTests.h10
-rw-r--r--Frameworks/PostgresKit/Tests/PGDataTypeTests.m41
-rw-r--r--Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.h41
-rw-r--r--Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.m96
-rw-r--r--Frameworks/PostgresKit/Tests/PGPostgresResultTests.h5
-rw-r--r--Frameworks/PostgresKit/Tests/PGPostgresResultTests.m49
6 files changed, 150 insertions, 92 deletions
diff --git a/Frameworks/PostgresKit/Tests/PGDataTypeTests.h b/Frameworks/PostgresKit/Tests/PGDataTypeTests.h
index 4d0debe1..bd1bd4a2 100644
--- a/Frameworks/PostgresKit/Tests/PGDataTypeTests.h
+++ b/Frameworks/PostgresKit/Tests/PGDataTypeTests.h
@@ -31,14 +31,14 @@
#import <PostgresKit/PostgresKit.h>
#import <SenTestingKit/SenTestingKit.h>
-@interface PGDataTypeTests : SenTestCase
+#import "PGPostgresIntegrationTestCase.h"
+
+@interface PGDataTypeTests : PGPostgresIntegrationTestCase
{
id _result;
id _expectedResult;
- NSString *_field;
-
- PGPostgresConnection *_connection;
+ NSString *_field;
}
@property (readwrite, retain) id result;
@@ -47,8 +47,6 @@
@property (readwrite, retain) NSString *field;
-@property (readwrite, retain) PGPostgresConnection *connection;
-
- (id)initWithInvocation:(NSInvocation *)invocation
connection:(PGPostgresConnection *)connection
expectedResult:(id)result
diff --git a/Frameworks/PostgresKit/Tests/PGDataTypeTests.m b/Frameworks/PostgresKit/Tests/PGDataTypeTests.m
index 765404a3..60108c29 100644
--- a/Frameworks/PostgresKit/Tests/PGDataTypeTests.m
+++ b/Frameworks/PostgresKit/Tests/PGDataTypeTests.m
@@ -30,19 +30,8 @@
#import "PGDataTypeTests.h"
-#import <PostgresKit/PostgresKit.h>
-
-static NSString *PGTestDatabaseHost = @"localhost";
-static NSString *PGTestDatabaseUser = @"pgkit_test";
-static NSString *PGTestDatabaseName = @"pgkit_test";
-static NSString *PGTestDatabasePassword = @"pgkit";
-
-static NSUInteger PGTestDatabasePort = 5432;
-
@interface PGDataTypeTests ()
-- (void)_establishConnection;
-
+ (void)_addTestForField:(NSString *)field
withExpectedResult:(id)result
connection:(PGPostgresConnection *)connection
@@ -54,7 +43,6 @@ static NSUInteger PGTestDatabasePort = 5432;
@synthesize field = _field;
@synthesize result = _result;
-@synthesize connection = _connection;
@synthesize expectedResult = _expectedResult;
#pragma mark -
@@ -111,9 +99,9 @@ static NSUInteger PGTestDatabasePort = 5432;
- (void)setUp
{
- [self _establishConnection];
+ [super setUp];
- PGPostgresResult *queryResult = [_connection executeWithFormat:@"SELECT \"%@_field\" FROM \"data_types\"", _field];
+ PGPostgresResult *queryResult = [[self connection] executeWithFormat:@"SELECT \"%@_field\" FROM \"data_types\"", _field];
[self setResult:[[queryResult row] objectForKey:[NSString stringWithFormat:@"%@_field", _field]]];
}
@@ -134,24 +122,6 @@ static NSUInteger PGTestDatabasePort = 5432;
#pragma mark -
#pragma mark Private API
-- (void)_establishConnection
-{
- [_connection setHost:PGTestDatabaseHost];
- [_connection setUser:PGTestDatabaseUser];
- [_connection setPort:PGTestDatabasePort];
- [_connection setDatabase:PGTestDatabaseName];
- [_connection setPassword:PGTestDatabasePassword];
-
- if (![_connection connect]) {
- STFail(@"Request to establish connection to local database failed.");
- }
-
- do {
- sleep(0.1);
- }
- while (![_connection isConnected]);
-}
-
+ (void)_addTestForField:(NSString *)field
withExpectedResult:(id)result
connection:(PGPostgresConnection *)connection
@@ -170,14 +140,9 @@ static NSUInteger PGTestDatabasePort = 5432;
#pragma mark -
- (void)dealloc
-{
- if (_connection && [_connection isConnected]) {
- [_connection disconnect];
- }
-
+{
if (_result) [_result release], _result = nil;
if (_field) [_field release], _field = nil;
- if (_connection) [_connection release], _connection = nil;
[super dealloc];
}
diff --git a/Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.h b/Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.h
new file mode 100644
index 00000000..feba5d43
--- /dev/null
+++ b/Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.h
@@ -0,0 +1,41 @@
+//
+// $Id$
+//
+// PGPostgresIntegrationTestCase.h
+// PostgresKit
+//
+// Created by Stuart Connolly (stuconnolly.com) on May 21, 2013.
+// Copyright (c) 2013 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+
+#import <PostgresKit/PostgresKit.h>
+#import <SenTestingKit/SenTestingKit.h>
+
+@interface PGPostgresIntegrationTestCase : SenTestCase
+{
+ PGPostgresConnection *_connection;
+}
+
+@property (readwrite, retain) PGPostgresConnection *connection;
+
+@end
diff --git a/Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.m b/Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.m
new file mode 100644
index 00000000..2e0dd2aa
--- /dev/null
+++ b/Frameworks/PostgresKit/Tests/PGPostgresIntegrationTestCase.m
@@ -0,0 +1,96 @@
+//
+// $Id$
+//
+// PGPostgresIntegrationTestCase.m
+// PostgresKit
+//
+// Created by Stuart Connolly (stuconnolly.com) on May 21, 2013.
+// Copyright (c) 2013 Stuart Connolly. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+
+#import "PGPostgresIntegrationTestCase.h"
+
+static NSString *PGTestDatabaseHost = @"localhost";
+static NSString *PGTestDatabaseUser = @"pgkit_test";
+static NSString *PGTestDatabaseName = @"pgkit_test";
+static NSString *PGTestDatabasePassword = @"pgkit";
+
+static NSUInteger PGTestDatabasePort = 5432;
+
+@interface PGPostgresIntegrationTestCase ()
+
+- (void)_establishConnection;
+
+@end
+
+@implementation PGPostgresIntegrationTestCase
+
+@synthesize connection = _connection;
+
+#pragma mark -
+#pragma mark Setup & Teardown
+
+- (void)setUp
+{
+ _connection = [[PGPostgresConnection alloc] init];
+
+ [self _establishConnection];
+}
+
+#pragma mark -
+#pragma mark Private API
+
+- (void)_establishConnection
+{
+ [_connection setHost:PGTestDatabaseHost];
+ [_connection setUser:PGTestDatabaseUser];
+ [_connection setPort:PGTestDatabasePort];
+ [_connection setDatabase:PGTestDatabaseName];
+ [_connection setPassword:PGTestDatabasePassword];
+
+ if (![_connection connect]) {
+ STFail(@"Request to establish connection to local database failed.");
+
+ exit(1);
+ }
+
+ do {
+ sleep(0.1);
+ }
+ while (![_connection isConnected]);
+}
+
+#pragma mark -
+
+- (void)dealloc
+{
+ if (_connection && [_connection isConnected]) {
+ [_connection disconnect];
+ }
+
+ if (_connection) [_connection release], _connection = nil;
+
+ [super dealloc];
+}
+
+@end
diff --git a/Frameworks/PostgresKit/Tests/PGPostgresResultTests.h b/Frameworks/PostgresKit/Tests/PGPostgresResultTests.h
index e519ebeb..f28ac361 100644
--- a/Frameworks/PostgresKit/Tests/PGPostgresResultTests.h
+++ b/Frameworks/PostgresKit/Tests/PGPostgresResultTests.h
@@ -31,10 +31,11 @@
#import <PostgresKit/PostgresKit.h>
#import <SenTestingKit/SenTestingKit.h>
-@interface PGPostgresResultTests : SenTestCase
+#import "PGPostgresIntegrationTestCase.h"
+
+@interface PGPostgresResultTests : PGPostgresIntegrationTestCase
{
PGPostgresResult *_result;
- PGPostgresConnection *_connection;
}
@end
diff --git a/Frameworks/PostgresKit/Tests/PGPostgresResultTests.m b/Frameworks/PostgresKit/Tests/PGPostgresResultTests.m
index 046b4ce6..5553cd75 100644
--- a/Frameworks/PostgresKit/Tests/PGPostgresResultTests.m
+++ b/Frameworks/PostgresKit/Tests/PGPostgresResultTests.m
@@ -30,19 +30,6 @@
#import "PGPostgresResultTests.h"
-static NSString *PGTestDatabaseHost = @"localhost";
-static NSString *PGTestDatabaseUser = @"pgkit_test";
-static NSString *PGTestDatabaseName = @"pgkit_test";
-static NSString *PGTestDatabasePassword = @"pgkit";
-
-static NSUInteger PGTestDatabasePort = 5432;
-
-@interface PGPostgresResultTests ()
-
-- (void)_establishConnection;
-
-@end
-
@implementation PGPostgresResultTests
#pragma mark -
@@ -50,11 +37,9 @@ static NSUInteger PGTestDatabasePort = 5432;
- (void)setUp
{
- _connection = [[PGPostgresConnection alloc] init];
+ [super setUp];
- [self _establishConnection];
-
- _result = [_connection execute:@"SELECT * FROM \"data_types\""];
+ _result = [[self connection] execute:@"SELECT * FROM \"data_types\""];
}
#pragma mark -
@@ -81,38 +66,10 @@ static NSUInteger PGTestDatabasePort = 5432;
}
#pragma mark -
-#pragma mark Private API
-
-- (void)_establishConnection
-{
- [_connection setHost:PGTestDatabaseHost];
- [_connection setUser:PGTestDatabaseUser];
- [_connection setPort:PGTestDatabasePort];
- [_connection setDatabase:PGTestDatabaseName];
- [_connection setPassword:PGTestDatabasePassword];
-
- if (![_connection connect]) {
- STFail(@"Request to establish connection to local database failed.");
-
- exit(1);
- }
-
- do {
- sleep(0.1);
- }
- while (![_connection isConnected]);
-}
-
-#pragma mark -
- (void)dealloc
-{
- if (_connection && [_connection isConnected]) {
- [_connection disconnect];
- }
-
+{
if (_result) [_result release], _result = nil;
- if (_connection) [_connection release], _connection = nil;
[super dealloc];
}