Commit 4b1caa0
Changed files (6)
lib
humble
spec
integration
lib/humble/mapping_configuration.rb
@@ -10,6 +10,7 @@ module Humble
end
def save_using(connection, item)
+ p @attributes
id = connection[@table.name].insert(@table.insert(item))
item.instance_variable_set('@id', id)
end
spec/integration/crud/update_spec.rb
@@ -0,0 +1,29 @@
+require "integration_helper"
+
+describe "updating a record" do
+ include_context "orm"
+
+ context "when updating a record" do
+ let(:movie) { Movie.new(:name => "old name") }
+
+ before :each do
+ session.begin_transaction do |session|
+ session.save(movie)
+ end
+ movie.name="new name"
+ session.begin_transaction do |session|
+ session.save(movie)
+ end
+ end
+
+ let(:results) { connection[:movies].all }
+
+ it "should save the changes" do
+ results.first[:name].should == 'new name'
+ end
+
+ it "should not create any new records" do
+ results.count.should == 1
+ end
+ end
+end
spec/integration/fixtures/movie_mapping.rb
@@ -5,6 +5,10 @@ class Movie
@id = attributes[:id] || -1
@name = attributes[:name]
end
+
+ def name=(new_name)
+ @name = new_name
+ end
end
class MovieMapping < Humble::DatabaseMapping
spec/integration/example_spec.rb
@@ -1,12 +1,7 @@
-require "spec_helper"
-require_relative 'fixtures/movie_mapping.rb'
+require "integration_helper"
-describe "orm" do
- let(:connection) { Sequel.connect(connection_string) }
- let(:connection_string) { 'sqlite://test.db' }
- let(:configuration) { Humble::Configuration.new(connection_string) }
- let(:session_factory) { configuration.build_session_factory }
- let(:session) { session_factory.create_session }
+describe "crud" do
+ include_context "orm"
before :each do
connection.create_table :movies do
@@ -73,5 +68,4 @@ describe "orm" do
movie.id.should_not == -1
end
end
-
end
spec/integration_helper.rb
@@ -0,0 +1,10 @@
+require "spec_helper"
+require_relative 'integration/fixtures/movie_mapping.rb'
+
+shared_context "orm" do
+ let(:connection) { Sequel.connect(connection_string) }
+ let(:connection_string) { 'sqlite://test.db' }
+ let(:configuration) { Humble::Configuration.new(connection_string) }
+ let(:session_factory) { configuration.build_session_factory }
+ let(:session) { session_factory.create_session }
+end
Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- humble (0.0.1374296616)
+ humble (0.0.1374362129)
sequel
GEM