func TestUpdateOne(t *testing.T) { db := NewInMemDatabase() instance := new(types.VirtualMachine) instance.SetUuid(uuid.New()) instance.SetName("instance") assert.NoError(t, db.Put(instance, nil, UIDList{})) vmi1 := new(types.VirtualMachineInterface) vmi1.SetUuid(uuid.New()) vmi1.SetName("port1") assert.NoError(t, db.Put(vmi1, nil, GetReferenceList(vmi1))) vmi1.AddVirtualMachine(instance) assert.NoError(t, db.Update(vmi1, GetReferenceList(vmi1))) result, err := db.GetBackReferences(parseUID(instance.GetUuid()), "virtual_machine_interface") assert.NoError(t, err) assert.Contains(t, result, parseUID(vmi1.GetUuid())) vmi1.ClearVirtualMachine() assert.NoError(t, db.Update(vmi1, GetReferenceList(vmi1))) result, err = db.GetBackReferences(parseUID(instance.GetUuid()), "virtual_machine_interface") assert.NoError(t, err) assert.Len(t, result, 0) }