Skip to content

Commit

Permalink
failing test that describes all intended behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
capotej committed Apr 23, 2010
1 parent a3def9c commit c5e2ddd
Show file tree
Hide file tree
Showing 3 changed files with 307 additions and 2 deletions.
284 changes: 284 additions & 0 deletions test/debug.log
Expand Up @@ -114,3 +114,287 @@
SQL (0.4ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.4ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (2.3ms) DROP TABLE "users"
SQL (1.2ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.0ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.4ms) SELECT version FROM "schema_migrations"
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.3ms) DROP TABLE "users"
SQL (0.9ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.9ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.1ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (308.6ms) DROP TABLE "users"
SQL (1.5ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.2ms) DROP TABLE "posts"
SQL (1.2ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.2ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::Post Create (0.5ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1)
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 3)
ExistentialTest::User Load (0.3ms) SELECT * FROM "users" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.6ms) DROP TABLE "users"
SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.0ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.1ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Create (0.7ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1)
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 3)
ExistentialTest::User Load (0.4ms) SELECT * FROM "users" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.4ms) DROP TABLE "users"
SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.0ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.1ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::Post Create (0.5ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 1)
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES(NULL)
ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES(NULL, 3)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (182.2ms) DROP TABLE "users"
SQL (1.3ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.4ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.3ms) DROP TABLE "posts"
SQL (1.3ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.2ms) SELECT version FROM "schema_migrations"
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.4ms) DROP TABLE "users"
SQL (0.8ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.9ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.1ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1)
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3)
ExistentialTest::User Load (0.3ms) SELECT * FROM "users" 
ExistentialTest::User Load (0.3ms) SELECT * FROM "users" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.3ms) DROP TABLE "users"
SQL (0.9ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.0ms) DROP TABLE "posts"
SQL (0.8ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.2ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 1
ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 2
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.2ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::Post Load (0.2ms) SELECT * FROM "posts" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.4ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.4ms) DROP TABLE "users"
SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.9ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.1ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts" 
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.5ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.4ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 1
ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 2
ExistentialTest::Post Load (0.2ms) SELECT * FROM "posts" 
ExistentialTest::Post Destroy (0.2ms) DELETE FROM "posts" WHERE "id" = 1
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::User Load (0.3ms) SELECT * FROM "users" 
ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.5ms) DROP TABLE "users"
SQL (1.0ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.0ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.1ms) SELECT version FROM "schema_migrations"
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::Post Load (0.1ms) SELECT * FROM "posts" 
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.4ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 1)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::User Destroy (0.2ms) DELETE FROM "users" WHERE "id" = 1
ExistentialTest::User Destroy (0.5ms) DELETE FROM "users" WHERE "id" = 2
ExistentialTest::Post Load (0.2ms) SELECT * FROM "posts" 
ExistentialTest::Post Destroy (0.2ms) DELETE FROM "posts" WHERE "id" = 1
ExistentialTest::User Create (0.3ms) INSERT INTO "users" ("name") VALUES('fred')
ExistentialTest::User Create (0.2ms) INSERT INTO "users" ("name") VALUES('bob')
ExistentialTest::Post Create (0.3ms) INSERT INTO "posts" ("name", "user_id") VALUES('lolz', 3)
ExistentialTest::User Load (0.2ms) SELECT * FROM "users" 
ExistentialTest::Post Load (0.3ms) SELECT * FROM "posts" 
SQL (0.2ms) select sqlite_version(*)
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (1.3ms) DROP TABLE "users"
SQL (0.9ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
SQL (0.3ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.9ms) DROP TABLE "posts"
SQL (0.9ms) CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" varchar(255)) 
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

SQL (0.1ms) SELECT version FROM "schema_migrations"
SQL (0.2ms)  SELECT name
FROM sqlite_master
WHERE type = 'table' AND NOT name = 'sqlite_sequence'

Binary file modified test/existential_plugin.sqlite3
Binary file not shown.
25 changes: 23 additions & 2 deletions test/existential_test.rb
Expand Up @@ -5,14 +5,35 @@ class ExistentialTest < Test::Unit::TestCase
load_schema

class User < ActiveRecord::Base
is_existential
end

class Post < ActiveRecord::Base
def allows_edit_for?(user)
if self.user_id == user.id
true
else
false
end
end
end

def setup
User.destroy_all
Post.destroy_all
@user = User.create(:name => "fred")
@other_guy = User.create(:name => "bob")
@post = Post.create(:name => "lolz", :user_id => @user.id)
end

def test_schema_loaded_correctly
assert_equal [], User.all
assert_equal [], Post.all
assert_equal 2, User.all.length
assert_equal 1, Post.all.length
end

def test_post_authorization
assert_false @fred.can?(:edit, @post)
assert @bob.can?(:edit, @post)
end


Expand Down

0 comments on commit c5e2ddd

Please sign in to comment.