package controller_test import ( "testing" "github.com/iliadenisov/galaxy/internal/model/report" "github.com/stretchr/testify/assert" ) func TestReportLocalShipClass(t *testing.T) { c, _ := newCache() r := &report.Report{} assert.Len(t, r.LocalShipClass, 0) c.ReportLocalShipClass(Race_0_idx, r) assert.Len(t, r.LocalShipClass, 3) for i := range r.LocalShipClass { assert.NotEmpty(t, r.LocalShipClass[i].Name) switch n := r.LocalShipClass[i].Name; n { case Cruiser.Name: assert.Equal(t, report.F(Cruiser.Drive.F()), r.LocalShipClass[i].Drive) assert.Equal(t, Cruiser.Armament, r.LocalShipClass[i].Armament) assert.Equal(t, report.F(Cruiser.Weapons.F()), r.LocalShipClass[i].Weapons) assert.Equal(t, report.F(Cruiser.Shields.F()), r.LocalShipClass[i].Shields) assert.Equal(t, report.F(Cruiser.Cargo.F()), r.LocalShipClass[i].Cargo) case Race_0_Gunship: assert.Equal(t, report.F(60.), r.LocalShipClass[i].Drive) assert.Equal(t, uint(3), r.LocalShipClass[i].Armament) assert.Equal(t, report.F(30.), r.LocalShipClass[i].Weapons) assert.Equal(t, report.F(100.), r.LocalShipClass[i].Shields) assert.Equal(t, report.F(0.), r.LocalShipClass[i].Cargo) case Race_0_Freighter: assert.Equal(t, report.F(8.), r.LocalShipClass[i].Drive) assert.Equal(t, uint(0), r.LocalShipClass[i].Armament) assert.Equal(t, report.F(0.), r.LocalShipClass[i].Weapons) assert.Equal(t, report.F(2.), r.LocalShipClass[i].Shields) assert.Equal(t, report.F(10.), r.LocalShipClass[i].Cargo) default: assert.Failf(t, "unexpected ship class", "name=%s", n) } } }