1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
shared_examples_for 'supporting Integer' do
before :all do
setup_test_environment
end
before do
@connection = DataObjects::Connection.new(CONFIG.uri)
end
after do
@connection.close
end
describe 'reading an Integer' do
describe 'with automatic typecasting' do
before do
@reader = @connection.create_command("SELECT id FROM widgets WHERE ad_description = ?").execute_reader('Buy this product now!')
@reader.next!
@values = @reader.values
end
after do
@reader.close
end
it 'should return the correctly typed result' do
expect(@values.first).to be_kind_of(Integer)
end
it 'should return the correct result' do
#Some of the drivers starts autoincrementation from 0 not 1
expect(@values.first).to satisfy { |val| val == 1 or val == 0 }
end
end
describe 'with manual typecasting' do
before do
@command = @connection.create_command("SELECT weight FROM widgets WHERE ad_description = ?")
@command.set_types(Integer)
@reader = @command.execute_reader('Buy this product now!')
@reader.next!
@values = @reader.values
end
after do
@reader.close
end
it 'should return the correctly typed result' do
expect(@values.first).to be_kind_of(Integer)
end
it 'should return the correct result' do
expect(@values.first).to eq(13)
end
end
end
describe 'writing an Integer' do
before do
@reader = @connection.create_command("SELECT id FROM widgets WHERE id = ?").execute_reader(2)
@reader.next!
@values = @reader.values
end
after do
@reader.close
end
it 'should return the correct entry' do
expect(@values.first).to eq(2)
end
end
describe 'writing a big Integer' do
before do
@connection.create_command("UPDATE widgets SET super_number = ? WHERE id = 10").execute_non_query(2147483648) # bigger than Integer.MAX in java !!
@reader = @connection.create_command("SELECT super_number FROM widgets WHERE id = ?").execute_reader(10)
@reader.next!
@values = @reader.values
end
after do
@reader.close
end
it 'should return the correct entry' do
expect(@values.first).to eq(2147483648)
end
end
end
|