Commit 1e343db
Changed files (4)
spec
spec/integration/fixtures/movie_mapping.rb
@@ -0,0 +1,26 @@
+class Movie
+ attr_reader :name
+
+ def initialize(attributes)
+ @name = attributes[:name]
+ end
+end
+
+class MovieMapping
+ def is_for?(item)
+ item == Movie || item.is_a?(Movie)
+ end
+
+ def save_using(connection, item)
+ connection[:movies].insert(:name => item.name)
+ end
+
+ def find_all_using(connection, clazz)
+ connection[:movies]
+ end
+
+ def run(map)
+ map.table :movies
+ end
+end
+
spec/integration/example_spec.rb
@@ -0,0 +1,43 @@
+require "spec_helper"
+require_relative 'fixtures/movie_mapping.rb'
+
+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 }
+
+ before :each do
+ connection.create_table :movies do
+ primary_key :id
+ String :name
+ end
+
+ configuration.add(MovieMapping.new)
+ session.begin_transaction do |session|
+ session.save(Movie.new(:name => 'monsters inc'))
+ end
+ end
+
+ after :each do
+ connection.drop_table :movies
+ end
+
+ context "when fetching all items" do
+ let(:results) { session.find_all Movie }
+
+ it "should return the correct number of movies" do
+ results.count.should == 1
+ end
+
+ xit "should return each movie with its name" do
+ results.first.name.should == 'monsters inc'
+ end
+
+ xit "should return instances of the target type" do
+ results.first.should be_instance_of(Movie)
+ end
+ end
+
+end
spec/example_spec.rb
@@ -1,60 +0,0 @@
-require "rubygems"
-require 'sequel'
-require "sqlite3"
-require 'humble'
-
-class Movie
- attr_reader :name
-
- def initialize(attributes)
- @name = attributes[:name]
- end
-end
-
-class MovieMapping
- def is_for?(item)
- item == Movie || item.is_a?(Movie)
- end
-
- def save_using(connection, item)
- connection[:movies].insert(:name => item.name)
- end
-
- def find_all_using(connection, clazz)
- connection[:movies]
- end
-
- def run(map)
- map.table :movies
- end
-end
-
-
-describe "orm" do
- let(:connection) { Sequel.connect(connection_string) }
- let(:connection_string) { 'sqlite://test.db' }
-
- before :each do
- connection.create_table :movies do
- primary_key :id
- String :name
- end
- end
-
- after :each do
- connection.drop_table :movies
- end
-
- it "should work like this" do
- configuration = Humble::Configuration.new(connection_string)
- configuration.add(MovieMapping.new)
- session_factory = configuration.build_session_factory
- session = session_factory.create_session
- session.begin_transaction do |session|
- session.save(Movie.new(:name => 'monsters inc'))
- end
-
- movies = session.find_all Movie
- movies.count.should == 1
- end
-end
spec/spec_helper.rb
@@ -0,0 +1,4 @@
+require "rubygems"
+require 'sequel'
+require "sqlite3"
+require 'humble'