Commit fbc36e89eb9b3642fe1dd4e053f90229e443d821

Authored by Heitor
Committed by Rafael Manzo
1 parent 3ed1197f

Implemented last_processing_of for Repository

app/models/repository.rb
1   -class Repository < KalibroGatekeeperClient::Entities::Repository
2   - include KalibroRecord
3   -
4   - validates :name, presence: true, kalibro_uniqueness: true
5   - validates :address, presence: true
6   -
7   - def last_processing
8   - if Processing.has_processing(@id)
9   - Processing.processing_of(@id)
  1 +class Repository < KalibroClient::Processor::Repository
  2 + def last_processing_of
  3 + if has_processing
  4 + last_processing
10 5 else
11 6 nil
12 7 end
... ...
spec/models/repository_spec.rb
1 1 require 'rails_helper'
2 2  
3 3 describe Repository, :type => :model do
4   - pending 'waiting for kalibro configurations integration' do
5   - describe 'methods' do
6   - describe 'last_processing' do
7   - subject { FactoryGirl.build(:repository) }
  4 + describe 'methods' do
  5 + describe 'last_processing_of' do
  6 + subject { FactoryGirl.build(:repository) }
8 7  
9   - context 'with no processing at all' do
10   - before :each do
11   - Processing.expects(:has_processing).with(subject.id).returns(false)
12   - end
13   -
14   - it 'should return nil' do
15   - expect(subject.last_processing).to be_nil
16   - end
  8 + context 'with no processing at all' do
  9 + before :each do
  10 + subject.expects(:has_processing).returns(false)
17 11 end
18 12  
19   - context 'with a ready processing' do
20   - let(:processing) { FactoryGirl.build(:processing) }
21   -
22   - before :each do
23   - Processing.expects(:has_processing).with(subject.id).returns(true)
24   - Processing.expects(:has_ready_processing).with(subject.id).returns(true)
25   - end
26   -
27   - it 'should return a ready processing processing' do
28   - Processing.expects(:last_ready_processing_of).with(subject.id).returns(processing)
29   -
30   - expect(subject.last_processing).to eq(processing)
31   - end
32   - end
33   -
34   - context 'with no ready processing' do
35   - let(:processing) { FactoryGirl.build(:processing, state: 'COLLECTING') }
36   -
37   - before :each do
38   - Processing.expects(:has_processing).with(subject.id).returns(true)
39   - Processing.expects(:has_ready_processing).with(subject.id).returns(false)
40   - end
41   -
42   - it 'should return the latest processing' do
43   - Processing.expects(:last_processing_of).with(subject.id).returns(processing)
44   -
45   - expect(subject.last_processing).to eq(processing)
46   - end
  13 + it 'should return nil' do
  14 + expect(subject.last_processing_of).to be_nil
47 15 end
48 16 end
49   - end
50 17  
51   - describe 'validations' do
52   - subject {FactoryGirl.build(:repository)}
  18 + context 'with a processing' do
  19 + let(:processing) { FactoryGirl.build(:processing) }
53 20  
54   - context 'active model validations' do
55 21 before :each do
56   - Repository.expects(:all).at_least_once.returns([])
  22 + subject.expects(:has_processing).returns(true)
57 23 end
58 24  
59   - it { is_expected.to validate_presence_of(:name) }
60   - it { is_expected.to validate_presence_of(:address) }
61   - end
62   -
63   - context 'kalibro validations' do
64   - before :each do
65   - Repository.expects(:request).returns(42)
66   - end
  25 + it 'should return a ready processing processing' do
  26 + subject.expects(:last_processing).returns(processing)
67 27  
68   - it 'should validate uniqueness' do
69   - KalibroUniquenessValidator.any_instance.expects(:validate_each).with(subject, :name, subject.name)
70   - subject.save
  28 + expect(subject.last_processing_of).to eq(processing)
71 29 end
72 30 end
73 31 end
... ...