Skip to content

Commit 76b4538

Browse files
committed
Add unit tests for route_create_message
1 parent 4816eba commit 76b4538

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

spec/unit/messages/route_create_message_spec.rb

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ module VCAP::CloudController
1919
metadata: {
2020
labels: { potato: 'yam' },
2121
annotations: { style: 'mashed' }
22+
},
23+
options: {
24+
lb_algo: 'round-robin'
2225
}
2326
}
2427
end
@@ -354,6 +357,111 @@ module VCAP::CloudController
354357
end
355358
end
356359
end
360+
361+
context 'options' do
362+
context 'when not provided' do
363+
let(:params) do
364+
{
365+
host: 'some-host',
366+
relationships: {
367+
space: { data: { guid: 'space-guid' } },
368+
domain: { data: { guid: 'domain-guid' } }
369+
}
370+
}
371+
end
372+
373+
it 'is valid' do
374+
expect(subject).to be_valid
375+
end
376+
end
377+
378+
context 'when empty' do
379+
let(:params) do
380+
{
381+
host: 'some-host',
382+
relationships: {
383+
space: { data: { guid: 'space-guid' } },
384+
domain: { data: { guid: 'domain-guid' } }
385+
},
386+
options: {}
387+
}
388+
end
389+
390+
it 'is valid' do
391+
expect(subject).to be_valid
392+
end
393+
end
394+
395+
context 'when options has invalid key' do
396+
let(:params) do
397+
{
398+
host: 'some-host',
399+
relationships: {
400+
space: { data: { guid: 'space-guid' } },
401+
domain: { data: { guid: 'domain-guid' } }
402+
},
403+
options: { foobar: 'baz' }
404+
}
405+
end
406+
407+
it 'is not valid' do
408+
expect(subject).not_to be_valid
409+
expect(subject.errors[:options]).to include("Unknown field(s): 'foobar'")
410+
end
411+
end
412+
413+
context 'when lb_algo has value round-robin' do
414+
let(:params) do
415+
{
416+
host: 'some-host',
417+
relationships: {
418+
space: { data: { guid: 'space-guid' } },
419+
domain: { data: { guid: 'domain-guid' } }
420+
},
421+
options: { lb_algo: 'round-robin' }
422+
}
423+
end
424+
425+
it 'is valid' do
426+
expect(subject).to be_valid
427+
end
428+
429+
context 'when lb_algo has value least-connections' do
430+
let(:params) do
431+
{
432+
host: 'some-host',
433+
relationships: {
434+
space: { data: { guid: 'space-guid' } },
435+
domain: { data: { guid: 'domain-guid' } }
436+
},
437+
options: { lb_algo: 'least-connections' }
438+
}
439+
end
440+
441+
it 'is valid' do
442+
expect(subject).to be_valid
443+
end
444+
end
445+
446+
context 'when lb_algo has invalid value' do
447+
let(:params) do
448+
{
449+
host: 'some-host',
450+
relationships: {
451+
space: { data: { guid: 'space-guid' } },
452+
domain: { data: { guid: 'domain-guid' } }
453+
},
454+
options: { lb_algo: 'random' }
455+
}
456+
end
457+
458+
it 'is not valid' do
459+
expect(subject).not_to be_valid
460+
expect(subject.errors[:options]).to include("Lb algo must be 'least-connections' or 'round-robin'")
461+
end
462+
end
463+
end
464+
end
357465
end
358466

359467
describe 'accessor methods' do

0 commit comments

Comments
 (0)