· 8 years ago · Jun 24, 2018, 10:48 PM
1require "rubygems"
2require "dm-core"
3require "spec"
4
5DataMapper::Logger.new(STDOUT, :debug)
6DataMapper.setup(:default, "sqlite3::memory:")
7
8class Person
9 include DataMapper::Resource
10 property :id, Serial
11 property :deleted_at, ParanoidDateTime
12end
13
14describe "ParanoidDateTime" do
15
16 describe "when wrapped in Resource.with_deleted {}" do
17 before(:all) do
18 DataMapper.auto_migrate!
19 Person.create
20 Person.create
21 Person.get(1).destroy
22 end
23
24 it "should return all resources (deleted ones included)" do
25 Person.with_deleted { Person.all.size.should == 2 }
26 end
27 end
28
29 describe "when not wrapped in Resource.with_deleted {}" do
30 before(:all) do
31 DataMapper.auto_migrate!
32 Person.create
33 Person.create
34 Person.get(1).destroy
35 end
36
37 it "should return all existing resources (deleted ones NOT included)" do
38 Person.all.size.should == 1
39 end
40 end
41
42end
43
44
45# ParanoidDateTime when wrapped in Resource.with_deleted {}
46# ~ (0.000144) SELECT sqlite_version(*)
47# ~ (0.000096) DROP TABLE IF EXISTS "people"
48# ~ (0.000024) PRAGMA table_info('people')
49# ~ (0.000373) CREATE TABLE "people" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "deleted_at" TIMESTAMP)
50# ~ (0.000048) INSERT INTO "people" ("deleted_at") VALUES (NULL)
51# ~ (0.000036) INSERT INTO "people" ("deleted_at") VALUES (NULL)
52# ~ (0.000030) SELECT "id" FROM "people" WHERE "id" = 1 AND "deleted_at" IS NULL
53# ~ (0.000058) UPDATE "people" SET "deleted_at" = '2009-06-05T01:35:36+02:00' WHERE "id" = 1
54# ~ (0.000040) SELECT "id" FROM "people" WHERE "deleted_at" IS NOT NULL ORDER BY "id"
55# - should return all resources (deleted ones included) (FAILED - 1)
56#
57# ParanoidDateTime when not wrapped in Resource.with_deleted {}
58# ~ (0.000104) DROP TABLE IF EXISTS "people"
59# ~ (0.000010) PRAGMA table_info('people')
60# ~ (0.000122) CREATE TABLE "people" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "deleted_at" TIMESTAMP)
61# ~ (0.000037) INSERT INTO "people" ("deleted_at") VALUES (NULL)
62# ~ (0.000036) INSERT INTO "people" ("deleted_at") VALUES (NULL)
63# ~ (0.000027) SELECT "id" FROM "people" WHERE "id" = 1 AND "deleted_at" IS NULL
64# ~ (0.000041) UPDATE "people" SET "deleted_at" = '2009-06-05T01:35:36+02:00' WHERE "id" = 1
65# ~ (0.000026) SELECT "id" FROM "people" WHERE "deleted_at" IS NULL ORDER BY "id"
66# - should return all existing resources (deleted ones NOT included)
67#
68# 1)
69# 'ParanoidDateTime when wrapped in Resource.with_deleted {} should return all resources (deleted ones included)' FAILED
70# expected: 2,
71# got: 1 (using ==)