aboutsummaryrefslogtreecommitdiffstats
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
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)
-rw-r--r--Source/SPDatabaseInfo.h20
-rw-r--r--Source/SPDatabaseInfo.m22
-rw-r--r--Source/SPTableCopy.m10
-rw-r--r--UnitTests/SPDatabaseCopyTest.h3
-rw-r--r--UnitTests/SPDatabaseCopyTest.m11
-rw-r--r--UnitTests/SPDatabaseInfoTest.h21
-rw-r--r--UnitTests/SPDatabaseInfoTest.m21
-rw-r--r--UnitTests/SPTableCopyTest.h22
-rw-r--r--UnitTests/SPTableCopyTest.m61
9 files changed, 145 insertions, 46 deletions
diff --git a/Source/SPDatabaseInfo.h b/Source/SPDatabaseInfo.h
index e71863eb..5d678a21 100644
--- a/Source/SPDatabaseInfo.h
+++ b/Source/SPDatabaseInfo.h
@@ -1,10 +1,26 @@
//
+// $Id: $
+//
// SPDatabaseInfo.h
// sequel-pro
//
-// Created by David Rekowski on 19.04.10.
-// Copyright 2010 Papaya Software GmbH. All rights reserved.
+// Created by David Rekowski on Apr 13, 2010
+//
+// 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 <Foundation/Foundation.h>
#import "MCPConnection.h"
diff --git a/Source/SPDatabaseInfo.m b/Source/SPDatabaseInfo.m
index b2c2469d..26264298 100644
--- a/Source/SPDatabaseInfo.m
+++ b/Source/SPDatabaseInfo.m
@@ -1,10 +1,26 @@
//
-// SPDatabaseInfo.m
+// $Id: $
+//
+// SPDatbaseInfo.h
// sequel-pro
//
-// Created by David Rekowski on 19.04.10.
-// Copyright 2010 Papaya Software GmbH. All rights reserved.
+// Created by David Rekowski on Apr 13, 2010
+//
+// 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 "SPAlertSheets.h"
#import "SPDatabaseInfo.h"
diff --git a/Source/SPTableCopy.m b/Source/SPTableCopy.m
index acf03312..1e0a4d63 100644
--- a/Source/SPTableCopy.m
+++ b/Source/SPTableCopy.m
@@ -52,20 +52,21 @@
@"show create table error informative message"),
[connection getLastErrorMessage]]);
}
- NSLog(@"%i", [theResult numOfRows]);
if ([theResult numOfRows] != 0) {
- NSString *createTableStatment = [[theResult fetchRowAsArray] objectAtIndex:1];
- return createTableStatment;
+ return [[theResult fetchRowAsArray] objectAtIndex:1];
}
+ return @"";
}
- (BOOL)copyTable:(NSString *)tableName from: (NSString *)sourceDB to: (NSString *)targetDB {
- NSMutableString *createTableStatement = [[NSMutableString alloc] initWithString:[self getCreateTableStatementFor:tableName inDB:sourceDB]];
+ NSString *createTableResult = [self getCreateTableStatementFor:tableName inDB:sourceDB];
+ NSMutableString *createTableStatement = [[NSMutableString alloc] initWithString:createTableResult];
// adding the target DB name and the separator dot after "CREATE TABLE ".
[createTableStatement insertString:@"." atIndex:13];
[createTableStatement insertString:[targetDB backtickQuotedString] atIndex:13];
+ NSLog(@"%@", createTableStatement);
/*
// this only works with MySQL >= 4.1
NSString *copyStatement = [NSString stringWithFormat:@"CREATE TABLE %@.%@ LIKE %@.%@",
@@ -106,7 +107,6 @@
[sourceDB backtickQuotedString],
[tableName backtickQuotedString]
];
- DLog(@"Copying table data: %@", copyDataStatement);
[connection queryString:copyDataStatement];
if ([connection queryErrored]) {
diff --git a/UnitTests/SPDatabaseCopyTest.h b/UnitTests/SPDatabaseCopyTest.h
index 75c225e9..641b3cdd 100644
--- a/UnitTests/SPDatabaseCopyTest.h
+++ b/UnitTests/SPDatabaseCopyTest.h
@@ -1,7 +1,7 @@
//
// $Id$
//
-// DatabaseCopyTest.h
+// SPDatabaseCopyTest.h
// sequel-pro
//
// Created by David Rekowski
@@ -30,7 +30,6 @@
@interface SPDatabaseCopyTest : SenTestCase {
}
- (void) testCopyDatabase;
-- (void) testCopyDatabaseTables;
- (void) testCreateDatabase;
@end
diff --git a/UnitTests/SPDatabaseCopyTest.m b/UnitTests/SPDatabaseCopyTest.m
index eafeb57b..c9a37d3c 100644
--- a/UnitTests/SPDatabaseCopyTest.m
+++ b/UnitTests/SPDatabaseCopyTest.m
@@ -1,7 +1,7 @@
//
// $Id$
//
-// DatabaseCopyTest.m
+// SPDatabaseCopyTest.m
// sequel-pro
//
// Created by David Rekowski
@@ -83,15 +83,6 @@
[target release];
}
-- (void) testCopyDatabaseTables {
- SPDatabaseCopy *dbCopy = [self getDatabaseCopyFixture];
- SPTableCopy *tableCopy = [self getTableCopyFixture];
- STAssertTrue([tableCopy copyTable:@"table_one" from: @"source_db" to: @"target_db"],
- @"Should have copied database table table_one.");
- STAssertTrue([tableCopy copyTable:@"table_two" from: @"source_db" to: @"target_db"],
- @"Should have copied database table table_two.");
-}
-
- (void) testCreateDatabase {
SPDatabaseCopy *dbCopy = [self getDatabaseCopyFixture];
// test missing :)
diff --git a/UnitTests/SPDatabaseInfoTest.h b/UnitTests/SPDatabaseInfoTest.h
index 2c31cf1e..81763b4a 100644
--- a/UnitTests/SPDatabaseInfoTest.h
+++ b/UnitTests/SPDatabaseInfoTest.h
@@ -1,10 +1,27 @@
//
+// $Id$
+//
// SPDatabaseInfoTest.h
// 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/>
#define USE_APPLICATION_UNIT_TEST 1
diff --git a/UnitTests/SPDatabaseInfoTest.m b/UnitTests/SPDatabaseInfoTest.m
index 0e813350..a53104e9 100644
--- a/UnitTests/SPDatabaseInfoTest.m
+++ b/UnitTests/SPDatabaseInfoTest.m
@@ -1,10 +1,27 @@
//
+// $Id$
+//
// SPDatabaseInfoTest.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 "SPDatabaseInfo.h"
diff --git a/UnitTests/SPTableCopyTest.h b/UnitTests/SPTableCopyTest.h
index 84cb6552..25d0da7b 100644
--- a/UnitTests/SPTableCopyTest.h
+++ b/UnitTests/SPTableCopyTest.h
@@ -1,10 +1,27 @@
//
+// $Id$
+//
// SPTableCopyTest.h
// 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/>
#define USE_APPLICATION_UNIT_TEST 1
@@ -14,7 +31,6 @@
}
-- (void)testCopyTableFromTo;
- (void)testCopyTableFromToWithData;
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