summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-05-07 15:35:22 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2012-05-07 15:35:22 +0200
commit6795890262d278b586fc4c2ea6744b8562712f1b (patch)
treeaa492b9d38a2f5497061989f68dc7c9fe1f35c87
parent28e869f93d60e12e01009875d83336b75b2763ab (diff)
downloadedoors-ruby-6795890262d278b586fc4c2ea6744b8562712f1b.zip
edoors-ruby-6795890262d278b586fc4c2ea6744b8562712f1b.tar.gz
spec: Twirl.require_p and Twirl.release_p
-rw-r--r--spec/evendoors_spec.rb48
1 files changed, 48 insertions, 0 deletions
diff --git a/spec/evendoors_spec.rb b/spec/evendoors_spec.rb
index e25e425..e326107 100644
--- a/spec/evendoors_spec.rb
+++ b/spec/evendoors_spec.rb
@@ -1,6 +1,14 @@
#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-
#
+begin
+ require 'simplecov'
+ SimpleCov.start do
+ add_filter 'spec'
+ end
+rescue LoadError
+end
+#
require 'evendoors'
#
describe EvenDoors do
@@ -9,4 +17,44 @@ describe EvenDoors do
expect{ EvenDoors }.not_to raise_error(NameError)
end
#
+ describe EvenDoors::Twirl do
+ #
+ class MyP < EvenDoors::Particle; end
+ #
+ it "should correctly manage Particles pool" do
+ p0 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ p1 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ (p0===p1).should be_false
+ EvenDoors::Twirl.release_p p0
+ p2 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ (p0===p2).should be_true
+ end
+ #
+ it "should correctly manage different Particles classes" do
+ p0 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ p1 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ (p0===p1).should be_false
+ EvenDoors::Twirl.release_p p0
+ p2 = EvenDoors::Twirl.require_p MyP
+ p3 = EvenDoors::Twirl.require_p MyP
+ (p2===p3).should be_false
+ EvenDoors::Twirl.release_p p2
+ p4 = EvenDoors::Twirl.require_p MyP
+ (p2===p4).should be_true
+ end
+ #
+ it "should correctly release merged data" do
+ p0 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ p1 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ (p0===p1).should be_false
+ p0.merge! p1
+ EvenDoors::Twirl.release_p p0
+ p2 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ (p2===p0).should be_true
+ p3 = EvenDoors::Twirl.require_p EvenDoors::Particle
+ (p3===p1).should be_true
+ end
+ #
+ end
+ #
end