aboutsummaryrefslogtreecommitdiffstats
path: root/UnitTests/SPTableCopyTest.m
diff options
context:
space:
mode:
authordrx777 <david.rekowski@gmx.de>2010-04-28 23:09:12 +0000
committerdrx777 <david.rekowski@gmx.de>2010-04-28 23:09:12 +0000
commitbc4c01b1c4729e3be448503e6ad2f6799834abca (patch)
tree26ad0baae641ecd91e2449f7f72652dd3bf9de0e /UnitTests/SPTableCopyTest.m
parentd6bf18b27e7e6e744b24ff69ec8bc0cce134f8eb (diff)
downloadsequelpro-bc4c01b1c4729e3be448503e6ad2f6799834abca.tar.gz
sequelpro-bc4c01b1c4729e3be448503e6ad2f6799834abca.tar.bz2
sequelpro-bc4c01b1c4729e3be448503e6ad2f6799834abca.zip
* removed SPDatabaseCopyTest testCopyDatabaseTables which is out of place here
* minor restructuring of SPTableCopy for readability and debuggability * corrected wrong default copyright header on some files * SPCopyTableTest: removed testCopyTableFromTo since it is integrated in testCopyTableFromToWithData; * SPCopyTableTest: fixed test to reflect two queries table creation (show create and create) instead of create like (<4.1 compatibility)
Diffstat (limited to 'UnitTests/SPTableCopyTest.m')
-rw-r--r--UnitTests/SPTableCopyTest.m61
1 files changed, 44 insertions, 17 deletions
diff --git a/UnitTests/SPTableCopyTest.m b/UnitTests/SPTableCopyTest.m
index 8d989ccf..f0e31c14 100644
--- a/UnitTests/SPTableCopyTest.m
+++ b/UnitTests/SPTableCopyTest.m
@@ -1,10 +1,27 @@
//
+// $Id$
+//
// SPTableCopyTest.m
// sequel-pro
//
-// Created by David Rekowski on 22.04.10.
-// Copyright 2010 Papaya Software GmbH. All rights reserved.
+// Created by David Rekowski
+// Copyright (c) 2010 David Rekowski. All rights reserved.
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// More info at <http://code.google.com/p/sequel-pro/>
#import <OCMock/OCMock.h>
#import "SPTableCopy.h"
@@ -13,33 +30,43 @@
@implementation SPTableCopyTest
-- (SPTableCopy *)getTableCopyFixture {
- SPTableCopy *tableCopy = [[SPTableCopy alloc] init];
- return tableCopy;
-}
-
- (id) getMockConnection {
id mockConnection = [OCMockObject niceMockForClass:[MCPConnection class]];
- return mockConnection;
+ return [mockConnection autorelease];
}
-- (void)testCopyTableFromTo {
- id tableCopy = [self getTableCopyFixture];
- id mockConnection = [self getMockConnection];
- [[mockConnection expect] queryString:@"CREATE TABLE `target_db`.`table_name` LIKE `source_db`.`table_name`"];
- [tableCopy setConnection:mockConnection];
- [tableCopy copyTable: @"table_name" from: @"source_db" to: @"target_db"];
- [mockConnection verify];
+- (id) getMockResult {
+ id mockResult = [OCMockObject niceMockForClass:[MCPResult class]];
+ return mockResult;
+}
+
+- (SPTableCopy *) getTableCopyFixture {
+ SPTableCopy *tableCopy = [[SPTableCopy alloc] init];
+ return [tableCopy autorelease];
}
- (void)testCopyTableFromToWithData {
- id tableCopy = [self getTableCopyFixture];
+ id mockResult = [self getMockResult];
+ unsigned long long varOne = 1;
+ NSValue *valueOne = [NSValue value:&varOne withObjCType:@encode(__typeof__(varOne))];
+ BOOL varNo = NO;
+ NSValue *valueNo = [NSValue value:&varNo withObjCType:@encode(BOOL)];
+ NSArray *resultArray = [[NSArray alloc] initWithObjects:@"", @"CREATE TABLE `table_name` ()", nil];
+ [[[mockResult expect] andReturnValue:valueOne] numOfRows];
+ [[[mockResult expect] andReturn:resultArray] fetchRowAsArray];
+
id mockConnection = [self getMockConnection];
- [[mockConnection expect] queryString:@"CREATE TABLE `target_db`.`table_name` LIKE `source_db`.`table_name`"];
+ [[[mockConnection expect] andReturn:mockResult] queryString:@"SHOW CREATE TABLE `source_db`.`table_name`"];
+ [[mockConnection expect] queryString:@"CREATE TABLE `target_db`.`table_name` ()"];
[[mockConnection expect] queryString:@"INSERT INTO `target_db`.`table_name` SELECT * FROM `source_db`.`table_name`"];
+ [[[mockConnection stub] andReturnValue:valueNo] queryErrored];
+
+ id tableCopy = [self getTableCopyFixture];
[tableCopy setConnection:mockConnection];
[tableCopy copyTable: @"table_name" from: @"source_db" to: @"target_db" withContent: YES];
+ [mockResult verify];
[mockConnection verify];
+ [resultArray release];
}
@end