animation data: Add/Delete entry methods

This commit is contained in:
M. Sz 2021-03-04 11:52:08 +01:00
parent 2e2d086d71
commit 98539befe3
2 changed files with 48 additions and 0 deletions

View File

@ -92,6 +92,28 @@ func (ad *AnimationData) DeleteRecord(name string, recordIdx int) error {
return nil
}
func (ad *AnimationData) AddEntry(name string) error {
_, found := ad.entries[name]
if found {
return fmt.Errorf("entry of name %s already exist", name)
}
ad.entries[name] = make([]*AnimationDataRecord, 0)
return nil
}
func (ad *AnimationData) DeleteEntry(name string) error {
_, found := ad.entries[name]
if !found {
return fmt.Errorf("entry named %s doesn't exist", name)
}
delete(ad.entries, name)
return nil
}
// Load loads the data into an AnimationData struct
//nolint:gocognit,funlen // can't reduce
func Load(data []byte) (*AnimationData, error) {

View File

@ -256,3 +256,29 @@ func TestAnimationData_PushRecord(t *testing.T) {
t.Fatal("unexpected name of new record was set")
}
}
func TestAnimationData_AddEntry(t *testing.T) {
ad := &AnimationData{
entries: make(map[string][]*AnimationDataRecord),
}
ad.AddEntry("a")
if _, found := ad.entries["a"]; !found {
t.Fatal("entry wasn't added")
}
}
func TestAnimationData_DeleteEntry(t *testing.T) {
ad := &AnimationData{
entries: map[string][]*AnimationDataRecord{
"a": {{}, {}},
},
}
ad.DeleteEntry("a")
if _, found := ad.entries["a"]; found {
t.Fatal("Entry wasn't deleted")
}
}