This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
covers 'facets/class/descendants'
|
||||
|
||||
test_case Class do
|
||||
|
||||
method :descendants do
|
||||
|
||||
a = Class.new
|
||||
b = Class.new(a)
|
||||
c = Class.new(b)
|
||||
|
||||
test do
|
||||
a.descendants.assert.include?(b)
|
||||
a.descendants.assert.include?(c)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
covers 'facets/class/preallocate'
|
||||
|
||||
test_case Class do
|
||||
|
||||
method :preallocate do
|
||||
|
||||
setup do
|
||||
@c = Class.new do
|
||||
def f
|
||||
"f"
|
||||
end
|
||||
end
|
||||
|
||||
@m = Module.new do
|
||||
def f
|
||||
'{' + super + '}'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test do
|
||||
m = @m
|
||||
@c.class_eval do
|
||||
preallocate m
|
||||
end
|
||||
x = @c.new
|
||||
x.f.assert == "{f}"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,20 @@
|
||||
covers 'facets/class/subclasses'
|
||||
|
||||
test_case Class do
|
||||
|
||||
method :subclasses do
|
||||
|
||||
# class with a number of subclasses
|
||||
c = Class.new
|
||||
x = Class.new(c)
|
||||
y = Class.new(c)
|
||||
z = Class.new(c)
|
||||
|
||||
test do
|
||||
c.subclasses == [x, y, z]
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
covers 'facets/class/to_proc'
|
||||
|
||||
test_case Class do
|
||||
|
||||
method :to_proc do
|
||||
|
||||
test do
|
||||
person = Struct.new(:name)
|
||||
people = ["joe"].map(&person)
|
||||
people[0].name.assert == "joe"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user