Skip to content
This repository has been archived by the owner on Mar 24, 2018. It is now read-only.

Commit

Permalink
Technical debt for universe package
Browse files Browse the repository at this point in the history
- refactored unit tests
  • Loading branch information
dertseha committed Nov 1, 2014
1 parent 88ff79b commit 94ed078
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 18 deletions.
28 changes: 10 additions & 18 deletions universe/ExtendedSolarSystem_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,20 @@ var _ = check.Suite(&ExtendedSolarSystemTestSuite{SolarSystemTestSuite{
baseSystem := newSolarSystem(id, constellationId, regionId, galaxyId, location, security)

// build first extension
extensionData1 := newSolarSystemExtensionData(baseSystem)
extension1 := &SolarSystemExtension{newSolarSystemExtensionData(baseSystem)}
extension1.AddCost(AddingTravelCost("test", 10.0))
extension1.AddJump(newJumpBuilder("type1", Id(1001)).Build())
extension1.BuildJump("type1", Id(1002))
extension1.BuildJump("type2", Id(2001))

extensionData1.costs = extensionData1.costs.Add(SingleTravelCostSum(AddingTravelCost("test", 10.0)))

builder1a := newJumpBuilder("type1", Id(1001))
extensionData1.jumps = append(extensionData1.jumps, builder1a.Build())
builder1b := newJumpBuilder("type1", Id(1002))
extensionData1.jumpBuilder = append(extensionData1.jumpBuilder, builder1b)
builder1c := newJumpBuilder("type2", Id(2001))
extensionData1.jumps = append(extensionData1.jumps, builder1c.Build())

extendedSystem1 := extensionData1.solarSystem()
extendedSystem1 := extension1.data.solarSystem()

// build second extension
extensionData2 := newSolarSystemExtensionData(extendedSystem1)

extensionData2.costs = extensionData2.costs.Add(SingleTravelCostSum(AddingTravelCost("test", 5.0)))

builder2a := newJumpBuilder("type2", Id(2002))
extensionData2.jumps = append(extensionData2.jumps, builder2a.Build())
extension2 := &SolarSystemExtension{newSolarSystemExtensionData(extendedSystem1)}
extension2.AddCost(AddingTravelCost("test", 5.0))
extension2.BuildJump("type2", Id(2002))

return extensionData2.solarSystem()
return extension2.data.solarSystem()
}}})

func (suite *ExtendedSolarSystemTestSuite) TestCostsContainsAddedAndCombinedTravelCost(c *check.C) {
Expand Down
65 changes: 65 additions & 0 deletions universe/JumpBuilder_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package universe

import (
check "gopkg.in/check.v1"
)

type JumpBuilderTestSuite struct {
builder *JumpBuilder
}

var _ = check.Suite(&JumpBuilderTestSuite{})

func (suite *JumpBuilderTestSuite) SetUpTest(c *check.C) {
suite.builder = newJumpBuilder("testType", Id(1))
}

func (suite *JumpBuilderTestSuite) TestBuildSetsJumpType(c *check.C) {
result := suite.builder.Build()

c.Assert(result.Type(), check.Equals, "testType")
}

func (suite *JumpBuilderTestSuite) TestBuildSetsDestinationId(c *check.C) {
result := suite.builder.Build()

c.Assert(result.DestinationId(), check.Equals, Id(1))
}

func (suite *JumpBuilderTestSuite) TestDefaultBuildUsesAnyLocationForSourceLocation(c *check.C) {
result := suite.builder.Build()

c.Assert(result.SourceLocation(), check.DeepEquals, AnyLocation())
}

func (suite *JumpBuilderTestSuite) TestDefaultBuildUsesAnyLocationForDestinationLocation(c *check.C) {
result := suite.builder.Build()

c.Assert(result.DestinationLocation(), check.DeepEquals, AnyLocation())
}

func (suite *JumpBuilderTestSuite) TestDefaultBuildUsesEmptyTravelCostSumForCosts(c *check.C) {
result := suite.builder.Build()

c.Assert(result.Costs(), check.DeepEquals, EmptyTravelCostSum())
}

func (suite *JumpBuilderTestSuite) TestFromSetsSourceLocation(c *check.C) {
location := NewSpecificLocation(10, 20, 30)
result := suite.builder.From(location).Build()

c.Assert(result.SourceLocation(), check.DeepEquals, location)
}

func (suite *JumpBuilderTestSuite) TestToSetsDestinationLocation(c *check.C) {
location := NewSpecificLocation(10, 20, 30)
result := suite.builder.To(location).Build()

c.Assert(result.DestinationLocation(), check.DeepEquals, location)
}

func (suite *JumpBuilderTestSuite) TestAddCostCombinesToCosts(c *check.C) {
result := suite.builder.AddCost(AddingTravelCost("type1", 10.0)).AddCost(AddingTravelCost("type1", 20.0)).Build()

c.Assert(result.Costs().Cost(AddingTravelCost("type1", 0.0)).Value(), check.Equals, 30.0)
}
File renamed without changes.

0 comments on commit 94ed078

Please sign in to comment.