activerecord-jdbc-adapter 0.9.7-java → 1.0.0.beta1-java
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +11 -0
- data/Manifest.txt +71 -38
- data/lib/active_record/connection_adapters/cachedb_adapter.rb +1 -1
- data/lib/active_record/connection_adapters/derby_adapter.rb +1 -13
- data/lib/active_record/connection_adapters/h2_adapter.rb +1 -13
- data/lib/active_record/connection_adapters/hsqldb_adapter.rb +1 -13
- data/lib/active_record/connection_adapters/informix_adapter.rb +1 -1
- data/lib/active_record/connection_adapters/jdbc_adapter.rb +1 -661
- data/lib/active_record/connection_adapters/jndi_adapter.rb +1 -1
- data/lib/active_record/connection_adapters/mssql_adapter.rb +1 -13
- data/lib/active_record/connection_adapters/mysql_adapter.rb +1 -13
- data/lib/active_record/connection_adapters/oracle_adapter.rb +1 -1
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +1 -13
- data/lib/active_record/connection_adapters/sqlite3_adapter.rb +1 -13
- data/lib/activerecord-jdbc-adapter.rb +2 -2
- data/lib/arjdbc.rb +29 -0
- data/lib/arjdbc/cachedb.rb +3 -0
- data/lib/arjdbc/cachedb/adapter.rb +20 -0
- data/lib/arjdbc/cachedb/connection_methods.rb +10 -0
- data/lib/arjdbc/db2.rb +2 -0
- data/lib/{jdbc_adapter/jdbc_db2.rb → arjdbc/db2/adapter.rb} +1 -17
- data/lib/arjdbc/derby.rb +7 -0
- data/lib/{jdbc_adapter/jdbc_derby.rb → arjdbc/derby/adapter.rb} +8 -26
- data/lib/arjdbc/derby/connection_methods.rb +18 -0
- data/lib/arjdbc/discover.rb +99 -0
- data/lib/arjdbc/firebird.rb +2 -0
- data/lib/{jdbc_adapter/jdbc_firebird.rb → arjdbc/firebird/adapter.rb} +12 -16
- data/lib/arjdbc/h2.rb +4 -0
- data/lib/arjdbc/h2/adapter.rb +15 -0
- data/lib/arjdbc/h2/connection_methods.rb +12 -0
- data/lib/arjdbc/hsqldb.rb +4 -0
- data/lib/{jdbc_adapter/jdbc_hsqldb.rb → arjdbc/hsqldb/adapter.rb} +6 -58
- data/lib/arjdbc/hsqldb/connection_methods.rb +14 -0
- data/lib/arjdbc/informix.rb +3 -0
- data/lib/{jdbc_adapter/jdbc_informix.rb → arjdbc/informix/adapter.rb} +6 -19
- data/lib/arjdbc/informix/connection_methods.rb +10 -0
- data/lib/arjdbc/jdbc.rb +2 -0
- data/lib/arjdbc/jdbc/adapter.rb +235 -0
- data/lib/arjdbc/jdbc/adapter_java.jar +0 -0
- data/lib/arjdbc/jdbc/callbacks.rb +44 -0
- data/lib/arjdbc/jdbc/column.rb +38 -0
- data/lib/arjdbc/jdbc/compatibility.rb +51 -0
- data/lib/arjdbc/jdbc/connection.rb +97 -0
- data/lib/arjdbc/jdbc/connection_methods.rb +16 -0
- data/lib/arjdbc/jdbc/core_ext.rb +24 -0
- data/lib/arjdbc/jdbc/discover.rb +18 -0
- data/lib/arjdbc/jdbc/driver.rb +44 -0
- data/lib/arjdbc/jdbc/extension.rb +47 -0
- data/lib/arjdbc/jdbc/java.rb +14 -0
- data/lib/{jdbc_adapter → arjdbc/jdbc}/jdbc.rake +0 -0
- data/lib/{jdbc_adapter → arjdbc/jdbc}/missing_functionality_helper.rb +5 -5
- data/lib/arjdbc/jdbc/quoted_primary_key.rb +28 -0
- data/lib/{jdbc_adapter → arjdbc/jdbc}/railtie.rb +1 -1
- data/lib/{jdbc_adapter → arjdbc/jdbc}/rake_tasks.rb +0 -0
- data/lib/arjdbc/jdbc/require_driver.rb +16 -0
- data/lib/arjdbc/jdbc/type_converter.rb +119 -0
- data/lib/arjdbc/mimer.rb +2 -0
- data/lib/{jdbc_adapter/jdbc_mimer.rb → arjdbc/mimer/adapter.rb} +16 -19
- data/lib/arjdbc/mssql.rb +4 -0
- data/lib/{jdbc_adapter/jdbc_mssql.rb → arjdbc/mssql/adapter.rb} +19 -31
- data/lib/arjdbc/mssql/connection_methods.rb +13 -0
- data/lib/{jdbc_adapter → arjdbc/mssql}/tsql_helper.rb +1 -1
- data/lib/arjdbc/mysql.rb +4 -0
- data/lib/arjdbc/mysql/adapter.rb +388 -0
- data/lib/arjdbc/mysql/connection_methods.rb +26 -0
- data/lib/arjdbc/oracle.rb +3 -0
- data/lib/{jdbc_adapter/jdbc_oracle.rb → arjdbc/oracle/adapter.rb} +9 -17
- data/lib/arjdbc/oracle/connection_methods.rb +11 -0
- data/lib/arjdbc/postgresql.rb +4 -0
- data/lib/{jdbc_adapter/jdbc_postgre.rb → arjdbc/postgresql/adapter.rb} +7 -36
- data/lib/arjdbc/postgresql/connection_methods.rb +21 -0
- data/lib/arjdbc/sqlite3.rb +4 -0
- data/lib/{jdbc_adapter/jdbc_sqlite3.rb → arjdbc/sqlite3/adapter.rb} +106 -104
- data/lib/arjdbc/sqlite3/connection_methods.rb +33 -0
- data/lib/arjdbc/sybase.rb +2 -0
- data/lib/arjdbc/sybase/adapter.rb +46 -0
- data/lib/arjdbc/version.rb +8 -0
- data/lib/jdbc_adapter.rb +2 -27
- data/lib/jdbc_adapter/version.rb +3 -5
- data/rails_generators/templates/config/initializers/jdbc.rb +1 -1
- data/rakelib/compile.rake +3 -2
- data/rakelib/package.rake +3 -3
- data/src/java/{jdbc_adapter/JdbcDerbySpec.java → arjdbc/derby/DerbyModule.java} +32 -32
- data/src/java/{jdbc_adapter/JdbcAdapterInternalService.java → arjdbc/jdbc/AdapterJavaService.java} +13 -7
- data/src/java/{jdbc_adapter → arjdbc/jdbc}/JdbcConnectionFactory.java +6 -6
- data/src/java/{jdbc_adapter → arjdbc/jdbc}/RubyJdbcConnection.java +91 -16
- data/src/java/arjdbc/jdbc/SQLBlock.java +48 -0
- data/src/java/{jdbc_adapter → arjdbc/mssql}/MssqlRubyJdbcConnection.java +5 -2
- data/src/java/{jdbc_adapter/JdbcMySQLSpec.java → arjdbc/mysql/MySQLModule.java} +12 -12
- data/src/java/{jdbc_adapter/PostgresRubyJdbcConnection.java → arjdbc/postgresql/PostgresqlRubyJdbcConnection.java} +11 -9
- data/src/java/arjdbc/sqlite3/Sqlite3RubyJdbcConnection.java +64 -0
- data/test/abstract_db_create.rb +4 -1
- data/test/activerecord/connection_adapters/type_conversion_test.rb +1 -1
- data/test/db/cachedb.rb +0 -0
- data/test/db/derby.rb +12 -14
- data/test/db/hsqldb.rb +3 -2
- data/test/db/jndi_config.rb +4 -4
- data/test/db/sqlite3.rb +2 -6
- data/test/db2_simple_test.rb +23 -0
- data/test/derby_migration_test.rb +50 -3
- data/test/jdbc_common.rb +1 -1
- data/test/jndi_callbacks_test.rb +1 -0
- data/test/postgres_nonseq_pkey_test.rb +0 -2
- data/test/postgres_schema_search_path_test.rb +0 -2
- data/test/simple.rb +3 -3
- data/test/sybase_jtds_simple_test.rb +22 -0
- metadata +82 -46
- data/lib/active_record/connection_adapters/jdbc_adapter_spec.rb +0 -26
- data/lib/jdbc_adapter/jdbc_adapter_internal.jar +0 -0
- data/lib/jdbc_adapter/jdbc_cachedb.rb +0 -33
- data/lib/jdbc_adapter/jdbc_mysql.rb +0 -260
- data/lib/jdbc_adapter/jdbc_sybase.rb +0 -50
- data/src/java/jdbc_adapter/SQLBlock.java +0 -27
- data/src/java/jdbc_adapter/Sqlite3RubyJdbcConnection.java +0 -41
- data/test/jdbc_adapter/jdbc_db2_test.rb +0 -26
- data/test/jdbc_adapter/jdbc_sybase_test.rb +0 -33
- data/test/minirunit.rb +0 -109
- data/test/minirunit/testConnect.rb +0 -14
- data/test/minirunit/testH2.rb +0 -73
- data/test/minirunit/testHsqldb.rb +0 -73
- data/test/minirunit/testLoadActiveRecord.rb +0 -3
- data/test/minirunit/testMysql.rb +0 -83
- data/test/minirunit/testRawSelect.rb +0 -24
@@ -1,50 +0,0 @@
|
|
1
|
-
module JdbcSpec
|
2
|
-
module Sybase
|
3
|
-
def self.adapter_matcher(name, *)
|
4
|
-
name =~ /sybase|tds/i ? self : false
|
5
|
-
end
|
6
|
-
|
7
|
-
def add_limit_offset!(sql, options) # :nodoc:
|
8
|
-
@limit = options[:limit]
|
9
|
-
@offset = options[:offset]
|
10
|
-
if use_temp_table?
|
11
|
-
# Use temp table to hack offset with Sybase
|
12
|
-
sql.sub!(/ FROM /i, ' INTO #artemp FROM ')
|
13
|
-
elsif zero_limit?
|
14
|
-
# "SET ROWCOUNT 0" turns off limits, so we havesy
|
15
|
-
# to use a cheap trick.
|
16
|
-
if sql =~ /WHERE/i
|
17
|
-
sql.sub!(/WHERE/i, 'WHERE 1 = 2 AND ')
|
18
|
-
elsif sql =~ /ORDER\s+BY/i
|
19
|
-
sql.sub!(/ORDER\s+BY/i, 'WHERE 1 = 2 ORDER BY')
|
20
|
-
else
|
21
|
-
sql << 'WHERE 1 = 2'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
# If limit is not set at all, we can ignore offset;
|
27
|
-
# if limit *is* set but offset is zero, use normal select
|
28
|
-
# with simple SET ROWCOUNT. Thus, only use the temp table
|
29
|
-
# if limit is set and offset > 0.
|
30
|
-
def use_temp_table?
|
31
|
-
!@limit.nil? && !@offset.nil? && @offset > 0
|
32
|
-
end
|
33
|
-
|
34
|
-
def zero_limit?
|
35
|
-
!@limit.nil? && @limit == 0
|
36
|
-
end
|
37
|
-
|
38
|
-
def modify_types(tp) #:nodoc:
|
39
|
-
tp[:primary_key] = "NUMERIC(22,0) IDENTITY PRIMARY KEY"
|
40
|
-
tp[:integer][:limit] = nil
|
41
|
-
tp[:boolean] = {:name => "bit"}
|
42
|
-
tp[:binary] = {:name => "image"}
|
43
|
-
tp
|
44
|
-
end
|
45
|
-
|
46
|
-
def remove_index(table_name, options = {})
|
47
|
-
execute "DROP INDEX #{table_name}.#{index_name(table_name, options)}"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* To change this template, choose Tools | Templates
|
3
|
-
* and open the template in the editor.
|
4
|
-
*/
|
5
|
-
|
6
|
-
package jdbc_adapter;
|
7
|
-
|
8
|
-
import java.sql.Connection;
|
9
|
-
import java.sql.ResultSet;
|
10
|
-
import java.sql.SQLException;
|
11
|
-
import java.sql.Statement;
|
12
|
-
|
13
|
-
/**
|
14
|
-
*
|
15
|
-
* @author nicksieger
|
16
|
-
*/
|
17
|
-
public abstract class SQLBlock {
|
18
|
-
abstract Object call(Connection c) throws SQLException;
|
19
|
-
|
20
|
-
public void close(Statement statement) {
|
21
|
-
RubyJdbcConnection.close(statement);
|
22
|
-
}
|
23
|
-
|
24
|
-
public void close(ResultSet resultSet) {
|
25
|
-
RubyJdbcConnection.close(resultSet);
|
26
|
-
}
|
27
|
-
}
|
@@ -1,41 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* To change this template, choose Tools | Templates
|
3
|
-
* and open the template in the editor.
|
4
|
-
*/
|
5
|
-
|
6
|
-
package jdbc_adapter;
|
7
|
-
|
8
|
-
import org.jruby.Ruby;
|
9
|
-
import org.jruby.RubyClass;
|
10
|
-
import org.jruby.runtime.ObjectAllocator;
|
11
|
-
import org.jruby.runtime.ThreadContext;
|
12
|
-
import org.jruby.runtime.builtin.IRubyObject;
|
13
|
-
|
14
|
-
/**
|
15
|
-
*
|
16
|
-
* @author enebo
|
17
|
-
*/
|
18
|
-
public class Sqlite3RubyJdbcConnection extends RubyJdbcConnection {
|
19
|
-
protected Sqlite3RubyJdbcConnection(Ruby runtime, RubyClass metaClass) {
|
20
|
-
super(runtime, metaClass);
|
21
|
-
}
|
22
|
-
|
23
|
-
public static RubyClass createSqlite3JdbcConnectionClass(Ruby runtime, RubyClass jdbcConnection) {
|
24
|
-
RubyClass clazz = RubyJdbcConnection.getConnectionAdapters(runtime).defineClassUnder("Sqlite3JdbcConnection",
|
25
|
-
jdbcConnection, SQLITE3_JDBCCONNECTION_ALLOCATOR);
|
26
|
-
clazz.defineAnnotatedMethods(Sqlite3RubyJdbcConnection.class);
|
27
|
-
|
28
|
-
return clazz;
|
29
|
-
}
|
30
|
-
|
31
|
-
private static ObjectAllocator SQLITE3_JDBCCONNECTION_ALLOCATOR = new ObjectAllocator() {
|
32
|
-
public IRubyObject allocate(Ruby runtime, RubyClass klass) {
|
33
|
-
return new Sqlite3RubyJdbcConnection(runtime, klass);
|
34
|
-
}
|
35
|
-
};
|
36
|
-
|
37
|
-
@Override
|
38
|
-
protected IRubyObject tables(ThreadContext context, String catalog, String schemaPattern, String tablePattern, String[] types) {
|
39
|
-
return (IRubyObject) withConnectionAndRetry(context, tableLookupBlock(context.getRuntime(), catalog, schemaPattern, tablePattern, types, true));
|
40
|
-
}
|
41
|
-
}
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'java'
|
2
|
-
require 'lib/jdbc_adapter/jdbc_db2'
|
3
|
-
require 'test/unit'
|
4
|
-
|
5
|
-
class JdbcSpec::DB2Test < Test::Unit::TestCase
|
6
|
-
def setup
|
7
|
-
@inst = Object.new
|
8
|
-
@inst.extend JdbcSpec::DB2
|
9
|
-
@column = Object.new
|
10
|
-
class <<@column
|
11
|
-
attr_accessor :type
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_quote_decimal
|
16
|
-
assert_equal %q{'123.45'}, @inst.quote("123.45")
|
17
|
-
@column.type = :decimal
|
18
|
-
assert_equal %q{123.45}, @inst.quote("123.45", @column), "decimal columns should not have quotes"
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_primary_key_generation
|
22
|
-
@column.type = :primary_key
|
23
|
-
assert_equal 'int not null generated by default as identity (start with 1) primary key', @inst.modify_types({:string => {}, :integer => {}, :boolean => {}})[:primary_key]
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'jdbc_common'
|
2
|
-
require 'jdbc_adapter'
|
3
|
-
|
4
|
-
class MockConnection
|
5
|
-
|
6
|
-
def adapter=( adapt )
|
7
|
-
end
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
module ActiveRecord
|
12
|
-
module ConnectionAdapters
|
13
|
-
|
14
|
-
class SybaseAdapterSelectionTest < Test::Unit::TestCase
|
15
|
-
|
16
|
-
def testJtdsSelectionUsingDialect()
|
17
|
-
config = {
|
18
|
-
:driver => 'net.sourceforge.jtds.Driver',
|
19
|
-
:dialect => 'sybase'
|
20
|
-
}
|
21
|
-
adapt = JdbcAdapter.new(MockConnection.new, nil, config)
|
22
|
-
assert adapt.kind_of?(JdbcSpec::Sybase), "Should be a sybase adapter"
|
23
|
-
end
|
24
|
-
|
25
|
-
def testJtdsSelectionNotUsingDialect
|
26
|
-
config = { :driver => 'net.sourceforge.jtds.Driver' }
|
27
|
-
adapt = JdbcAdapter.new(MockConnection.new, nil, config)
|
28
|
-
assert adapt.kind_of?(JdbcSpec::MsSQL), "Should be a MsSQL apdater"
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/test/minirunit.rb
DELETED
@@ -1,109 +0,0 @@
|
|
1
|
-
|
2
|
-
$silentTests = false
|
3
|
-
$testnum=0
|
4
|
-
$ntest=0
|
5
|
-
$failed = []
|
6
|
-
$curtestOK=true
|
7
|
-
|
8
|
-
module MiniRUnit
|
9
|
-
class Failure
|
10
|
-
def initialize(what, testnum, msg, where)
|
11
|
-
@what, @testnum, @msg, @where = what, testnum, msg, where
|
12
|
-
end
|
13
|
-
|
14
|
-
def to_s
|
15
|
-
sprintf("FAILED %s %d %s-- %s\n", @what, @testnum, @msg, @where)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class Error
|
20
|
-
def initialize(what, testnum, boom)
|
21
|
-
@what, @testnum, @boom = what, testnum, boom
|
22
|
-
end
|
23
|
-
|
24
|
-
def to_s
|
25
|
-
sprintf("EXCEPTION raised %s %d -- \n\tException: %s\n\t%s",
|
26
|
-
@what, @testnum, @boom.to_s, @boom.backtrace.join("\n\t"))
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
|
32
|
-
def test_check(what)
|
33
|
-
printf "%s : ", what unless $silentTests
|
34
|
-
$what = what
|
35
|
-
$testnum = 0
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_ok(cond, msg="")
|
39
|
-
$testnum+=1
|
40
|
-
$ntest+=1
|
41
|
-
if cond
|
42
|
-
print "." unless $silentTests
|
43
|
-
else
|
44
|
-
where = caller.reject {|where| where =~ /minirunit/}[0]
|
45
|
-
$failed.push(MiniRUnit::Failure.new($what, $testnum, msg, where))
|
46
|
-
print "F" unless $silentTests
|
47
|
-
$curtestOK=false
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_fail(msg="")
|
52
|
-
test_ok(false, msg)
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_equal(a,b)
|
56
|
-
test_ok(a == b, "expected #{a.inspect}, found #{b.inspect}")
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_no_exception(&proc)
|
60
|
-
raised = false
|
61
|
-
begin
|
62
|
-
proc.call
|
63
|
-
rescue exception
|
64
|
-
raised = x
|
65
|
-
end
|
66
|
-
test_ok(!raised, "unexpected exception #{raised}")
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_exception(type=Exception, &proc)
|
70
|
-
raised = false
|
71
|
-
begin
|
72
|
-
proc.call
|
73
|
-
rescue type=>e
|
74
|
-
raised = true
|
75
|
-
end
|
76
|
-
test_ok(raised, "#{type} expected")
|
77
|
-
e
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_get_last_failed
|
81
|
-
if $failed.empty?
|
82
|
-
return nil
|
83
|
-
end
|
84
|
-
return $failed.last
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_print_report
|
88
|
-
puts
|
89
|
-
puts "-" * 80
|
90
|
-
$failed.each { |error| puts error }
|
91
|
-
puts "-" * 80
|
92
|
-
puts "Tests: #$ntest. (Ok: #{$ntest - $failed.size}; Failed: #{$failed.size})"
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_load(test)
|
96
|
-
begin
|
97
|
-
$curtestOK=true
|
98
|
-
load(test)
|
99
|
-
rescue Exception => boom
|
100
|
-
puts 'ERROR' unless $silentTests
|
101
|
-
$failed.push(MiniRUnit::Error.new($what, $testnum, boom))
|
102
|
-
else
|
103
|
-
if $curtestOK
|
104
|
-
puts 'OK' unless $silentTests
|
105
|
-
else
|
106
|
-
puts 'FAILED' unless $silentTests
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'test/minirunit'
|
2
|
-
RAILS_CONNECTION_ADAPTERS = ['abstract', 'jdbc']
|
3
|
-
require 'active_record'
|
4
|
-
|
5
|
-
connspec = ActiveRecord::Base.establish_connection(
|
6
|
-
:adapter => 'jdbc',
|
7
|
-
:driver => 'com.mysql.jdbc.Driver',
|
8
|
-
:url => 'jdbc:mysql://localhost:3306/test',
|
9
|
-
:username => 'rlsmgr',
|
10
|
-
:password => ''
|
11
|
-
)
|
12
|
-
|
13
|
-
puts "#{connspec}"
|
14
|
-
puts "#{ActiveRecord::Base.connection}"
|
data/test/minirunit/testH2.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'minirunit'
|
3
|
-
|
4
|
-
config = {
|
5
|
-
:adapter => 'jdbc',
|
6
|
-
:username => 'sa',
|
7
|
-
:password => '',
|
8
|
-
:driver => 'org.h2.Driver',
|
9
|
-
:url => 'jdbc:h2:test.db'
|
10
|
-
}
|
11
|
-
RAILS_CONNECTION_ADAPTERS = ['abstract', 'jdbc']
|
12
|
-
|
13
|
-
require 'active_record'
|
14
|
-
|
15
|
-
ActiveRecord::Base.establish_connection(config)
|
16
|
-
require 'logger'
|
17
|
-
ActiveRecord::Base.logger = Logger.new($stdout)
|
18
|
-
ActiveRecord::Base.logger.level = Logger::DEBUG
|
19
|
-
|
20
|
-
class CreateEntries < ActiveRecord::Migration
|
21
|
-
def self.up
|
22
|
-
create_table "entries", :force => true do |t|
|
23
|
-
t.column :title, :string, :limit => 100
|
24
|
-
t.column :updated_on, :datetime
|
25
|
-
t.column :content, :text
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.down
|
30
|
-
drop_table "entries"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
CreateEntries.up
|
35
|
-
|
36
|
-
test_ok ActiveRecord::Base.connection.tables.include?('entries')
|
37
|
-
|
38
|
-
class Entry < ActiveRecord::Base
|
39
|
-
end
|
40
|
-
|
41
|
-
Entry.delete_all
|
42
|
-
|
43
|
-
test_equal 0, Entry.count
|
44
|
-
|
45
|
-
TITLE = "First post!"
|
46
|
-
CONTENT = "Hello from JRuby on Rails!"
|
47
|
-
NEW_TITLE = "First post updated title"
|
48
|
-
|
49
|
-
post = Entry.new
|
50
|
-
post.title = TITLE
|
51
|
-
post.content = CONTENT
|
52
|
-
post.save
|
53
|
-
|
54
|
-
test_equal 1, Entry.count
|
55
|
-
|
56
|
-
post = Entry.find(:first)
|
57
|
-
test_equal TITLE, post.title
|
58
|
-
test_equal CONTENT, post.content
|
59
|
-
|
60
|
-
post.title = NEW_TITLE
|
61
|
-
post.save
|
62
|
-
|
63
|
-
post = Entry.find(:first)
|
64
|
-
test_equal NEW_TITLE, post.title
|
65
|
-
|
66
|
-
post.destroy
|
67
|
-
|
68
|
-
test_equal 0, Entry.count
|
69
|
-
|
70
|
-
CreateEntries.down
|
71
|
-
|
72
|
-
# Clean up hsqldb when done
|
73
|
-
Dir['test.db*'].each {|f| File.delete(f)}
|
@@ -1,73 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'minirunit'
|
3
|
-
|
4
|
-
config = {
|
5
|
-
:adapter => 'jdbc',
|
6
|
-
:username => 'sa',
|
7
|
-
:password => '',
|
8
|
-
:driver => 'org.hsqldb.jdbcDriver',
|
9
|
-
:url => 'jdbc:hsqldb:test.db'
|
10
|
-
}
|
11
|
-
RAILS_CONNECTION_ADAPTERS = ['abstract', 'jdbc']
|
12
|
-
|
13
|
-
require 'active_record'
|
14
|
-
|
15
|
-
ActiveRecord::Base.establish_connection(config)
|
16
|
-
require 'logger'
|
17
|
-
ActiveRecord::Base.logger = Logger.new($stdout)
|
18
|
-
ActiveRecord::Base.logger.level = Logger::DEBUG
|
19
|
-
|
20
|
-
class CreateEntries < ActiveRecord::Migration
|
21
|
-
def self.up
|
22
|
-
create_table "entries", :force => true do |t|
|
23
|
-
t.column :title, :string, :limit => 100
|
24
|
-
t.column :updated_on, :datetime
|
25
|
-
t.column :content, :text
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.down
|
30
|
-
drop_table "entries"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
CreateEntries.up
|
35
|
-
|
36
|
-
test_ok ActiveRecord::Base.connection.tables.include?('entries')
|
37
|
-
|
38
|
-
class Entry < ActiveRecord::Base
|
39
|
-
end
|
40
|
-
|
41
|
-
Entry.delete_all
|
42
|
-
|
43
|
-
test_equal 0, Entry.count
|
44
|
-
|
45
|
-
TITLE = "First post!"
|
46
|
-
CONTENT = "Hello from JRuby on Rails!"
|
47
|
-
NEW_TITLE = "First post updated title"
|
48
|
-
|
49
|
-
post = Entry.new
|
50
|
-
post.title = TITLE
|
51
|
-
post.content = CONTENT
|
52
|
-
post.save
|
53
|
-
|
54
|
-
test_equal 1, Entry.count
|
55
|
-
|
56
|
-
post = Entry.find(:first)
|
57
|
-
test_equal TITLE, post.title
|
58
|
-
test_equal CONTENT, post.content
|
59
|
-
|
60
|
-
post.title = NEW_TITLE
|
61
|
-
post.save
|
62
|
-
|
63
|
-
post = Entry.find(:first)
|
64
|
-
test_equal NEW_TITLE, post.title
|
65
|
-
|
66
|
-
post.destroy
|
67
|
-
|
68
|
-
test_equal 0, Entry.count
|
69
|
-
|
70
|
-
CreateEntries.down
|
71
|
-
|
72
|
-
# Clean up hsqldb when done
|
73
|
-
Dir['test.db*'].each {|f| File.delete(f)}
|