test/lib/vedeu/repository/interface_repository_test.rb in vedeu-0.0.25 vs test/lib/vedeu/repository/interface_repository_test.rb in vedeu-0.0.26
- old
+ new
@@ -1,14 +1,36 @@
require_relative '../../../test_helper'
+require_relative '../../../../lib/vedeu/repository/interface_repository'
module Vedeu
describe InterfaceRepository do
let(:described_class) { InterfaceRepository }
- before { InterfaceRepository.create({ name: 'dummy', width: 15, height: 2 }) }
- after { InterfaceRepository.reset }
+ before do
+ InterfaceRepository.create({
+ name: 'dummy',
+ width: 15,
+ height: 2
+ })
+ end
+ after { InterfaceRepository.reset }
+ describe '.create' do
+ let(:subject) { described_class.create(attributes) }
+ let(:attributes) {
+ {
+ name: 'dummy',
+ width: 15,
+ height: 2
+ }
+ }
+
+ it 'returns an Interface' do
+ subject.must_be_instance_of(Interface)
+ end
+ end
+
describe '.find' do
let(:subject) { described_class.find(value) }
let(:value) { 'dummy' }
context 'when the interface exists' do
@@ -24,44 +46,70 @@
proc { subject }.must_raise(UndefinedInterface)
end
end
end
- describe '.refresh' do
- let(:subject) { described_class.refresh }
+ describe '.update' do
+ let(:subject) { described_class.update(value, attributes) }
+ let(:value) { 'dummy' }
+ let(:attributes) { { name: 'dumber' } }
- before { Compositor.stubs(:arrange) }
+ it 'returns an Interface' do
+ subject.must_be_instance_of(Interface)
+ end
- it 'returns an Array' do
- subject.must_be_instance_of(Array)
+ context 'when the interface exists' do
+ it 'updates and returns the existing interface' do
+ subject.name.must_equal('dumber')
+ end
end
+
+ context 'when the interface does not exist' do
+ before { InterfaceRepository.reset }
+
+ it 'returns the created interface' do
+ subject.name.must_equal('dumber')
+ end
+ end
end
- describe '.entity' do
- let(:subject) { described_class.entity }
+ describe '.refresh' do
+ let(:subject) { described_class.refresh }
- it 'returns an Interface' do
- subject.must_equal(Interface)
+ it 'returns an Array' do
+ subject.must_be_instance_of(Array)
end
end
describe '.by_layer' do
let(:subject) { described_class.by_layer }
before do
InterfaceRepository.reset
- @case_a = InterfaceRepository.create({ name: 'a', width: 15, height: 2, layer: 1 })
- @case_b = InterfaceRepository.create({ name: 'b', width: 15, height: 2, layer: 0 })
- @case_c = InterfaceRepository.create({ name: 'c', width: 15, height: 2, layer: 2 })
+ @case_a = InterfaceRepository.create({ name: 'a', width: 15, height: 2, z: 2 })
+ @case_b = InterfaceRepository.create({ name: 'b', width: 15, height: 2, z: 1 })
+ @case_c = InterfaceRepository.create({ name: 'c', width: 15, height: 2, z: 3 })
end
after { InterfaceRepository.reset }
it 'returns an Array' do
subject.must_be_instance_of(Array)
end
it 'returns the collection in order they should be drawn' do
subject.must_equal([@case_b, @case_a, @case_c])
+ end
+ end
+
+ describe '.entity' do
+ let(:subject) { described_class.entity }
+
+ it 'returns a Class instance' do
+ subject.must_be_instance_of(Class)
+ end
+
+ it 'returns Interface' do
+ subject.must_equal(Interface)
end
end
end
end