package main import ( "github.com/minisu/ipdip/repository/inmemory" "github.com/stretchr/testify/assert" "testing" ) func Test_decisionMaker_create_and_get(t *testing.T) { m := DecisionMaker{ repository: inmemory.NewInMemoryDecisionRepo() } name := "Which flavor?" options := []string{"Vanilla", "Chocolate"} id, err := m.createDecision(name, options) if id == [16]byte{} || err != nil { t.Failed() } d, err := m.getDecision(id) assert.Equal(t, id.String(), d.Id) assert.Equal(t, name, d.Name) assert.Equal(t, "", d.DecidedOption) assert.Equal(t, options, d.Options) } func Test_decisionMaker_decide(t *testing.T) { m := DecisionMaker{ repository: inmemory.NewInMemoryDecisionRepo() } name := "Which flavor?" options := []string{"Vanilla", "Chocolate"} id, err := m.createDecision(name, options) assert.Nil(t, err) d, err := m.decide(id) assert.Contains(t, options, d.DecidedOption) d, err = m.decide(id) assert.NotNil(t, err) d2, err := m.getDecision(id) assert.Equal(t, d.DecidedOption, d2.DecidedOption) }