Sha256: 6011a861eb4532ff206ac05b1fb537c8f7f241db30e5f1239199fd6d97392ef9

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

require_relative "../test_helper"

module Unit
  class TestQuery < MiniTest::Test

    describe DirectiveRecord::Query do
      describe ".new" do
        it "returns the appropriate query instance" do
          instance = mock
          instance.expects(:new).with(Office).returns("SELECT * FROM offices")
          DirectiveRecord::Query.expects(:class_for).with("activerecord::connectionadapters::mysql2adapter").returns(instance)
          assert_equal "SELECT * FROM offices", DirectiveRecord::Query.new(Office)
        end
      end

      describe ".class_for" do
        describe "when MySQL" do
          it "returns the DirectiveRecord::Query::MySQL class" do
            assert_equal DirectiveRecord::Query::MySQL, DirectiveRecord::Query.send(:class_for, "activerecord::connectionadapters::mysql2adapter")
          end
        end

        describe "when MonetDB" do
          it "returns the DirectiveRecord::Query::MonetDB class" do
            assert_equal DirectiveRecord::Query::MonetDB, DirectiveRecord::Query.send(:class_for, "monetdb::connection")
          end
        end

        describe "when else" do
          it "raises a NotImplementedError" do
            assert_raises NotImplementedError do
              DirectiveRecord::Query.send(:class_for, "foobar::connection")
            end
          end
        end
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
directiverecord-0.1.0 test/unit/test_query.rb