From c3b69c06fc1d9564f667b071756163e0f6dcbd26 Mon Sep 17 00:00:00 2001 From: Clivern Date: Sat, 16 Jan 2021 20:31:30 +0100 Subject: [PATCH] init --- core/component/balancer_test.go | 86 +++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 core/component/balancer_test.go diff --git a/core/component/balancer_test.go b/core/component/balancer_test.go new file mode 100644 index 0000000..21a9644 --- /dev/null +++ b/core/component/balancer_test.go @@ -0,0 +1,86 @@ +// Copyright 2021 Clivern. All rights reserved. +// Use of this source code is governed by the MIT +// license that can be found in the LICENSE file. + +package component + +import ( + "testing" + + "github.com/franela/goblin" +) + +// TestUnitBalancer +func TestUnitBalancer(t *testing.T) { + g := goblin.Goblin(t) + + g.Describe("#RandomBalancer", func() { + g.It("It should satisfy test cases", func() { + b := NewRandomBalancer([]*Target{ + { + URL: "A", + }, + { + URL: "B", + }, + { + URL: "C", + }, + { + URL: "D", + }, + { + URL: "E", + }, + { + URL: "F", + }, + }) + + g.Assert(b.Next().URL != "").Equal(true) + g.Assert(b.Next().URL != "").Equal(true) + g.Assert(b.Next().URL != "").Equal(true) + g.Assert(b.Next().URL != "").Equal(true) + g.Assert(b.Next().URL != "").Equal(true) + g.Assert(b.Next().URL != "").Equal(true) + }) + }) + + g.Describe("#RoundRobinBalancer", func() { + g.It("It should satisfy test cases", func() { + r := NewRoundRobinBalancer([]*Target{ + { + URL: "A", + }, + { + URL: "B", + }, + { + URL: "C", + }, + { + URL: "D", + }, + { + URL: "E", + }, + { + URL: "F", + }, + }) + + g.Assert(r.Next().URL).Equal("A") + g.Assert(r.Next().URL).Equal("B") + g.Assert(r.Next().URL).Equal("C") + g.Assert(r.Next().URL).Equal("D") + g.Assert(r.Next().URL).Equal("E") + g.Assert(r.Next().URL).Equal("F") + g.Assert(r.Next().URL).Equal("A") + g.Assert(r.Next().URL).Equal("B") + g.Assert(r.Next().URL).Equal("C") + g.Assert(r.Next().URL).Equal("D") + g.Assert(r.Next().URL).Equal("E") + g.Assert(r.Next().URL).Equal("F") + }) + }) +}