func TestRecycler(t *testing.T) { plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins([]volume.VolumePlugin{&hostPathPlugin{nil, newMockRecycler}}, volume.NewFakeVolumeHost("/tmp/fake", nil, nil)) spec := &volume.Spec{PersistentVolumeSource: api.PersistentVolumeSource{HostPath: &api.HostPathVolumeSource{Path: "/foo"}}} plug, err := plugMgr.FindRecyclablePluginBySpec(spec) if err != nil { t.Errorf("Can't find the plugin by name") } recycler, err := plug.NewRecycler(spec) if err != nil { t.Error("Failed to make a new Recyler: %v", err) } if recycler.GetPath() != spec.PersistentVolumeSource.HostPath.Path { t.Errorf("Expected %s but got %s", spec.PersistentVolumeSource.HostPath.Path, recycler.GetPath()) } if err := recycler.Recycle(); err != nil { t.Errorf("Mock Recycler expected to return nil but got %s", err) } }