func TestStoreLoad(t *testing.T) { defer cleanup() expectedURL := "unix:///foo/baz" flags := hosttest.GetTestDriverFlags() flags.Data["url"] = expectedURL store := getTestStore() h, err := hosttest.GetDefaultTestHost() if err != nil { t.Fatal(err) } if err := h.Driver.SetConfigFromFlags(flags); err != nil { t.Fatal(err) } if err := store.Save(h); err != nil { t.Fatal(err) } h, err = store.Load(h.Name) if err != nil { t.Fatal(err) } rawDataDriver, ok := h.Driver.(*host.RawDataDriver) if !ok { t.Fatal("Expected driver loaded from store to be of type *host.RawDataDriver and it was not") } realDriver := none.NewDriver(h.Name, store.Path) if err := json.Unmarshal(rawDataDriver.Data, &realDriver); err != nil { t.Fatalf("Error unmarshaling rawDataDriver data into concrete 'none' driver: %s", err) } h.Driver = realDriver actualURL, err := h.URL() if err != nil { t.Fatal(err) } if actualURL != expectedURL { t.Fatalf("GetURL is not %q, got %q", expectedURL, actualURL) } }
func TestStoreLoad(t *testing.T) { defer cleanup() expectedURL := "unix:///foo/baz" flags := hosttest.GetTestDriverFlags() flags.Data["url"] = expectedURL store := getTestStore() h, err := hosttest.GetDefaultTestHost() if err != nil { t.Fatal(err) } if err := h.Driver.SetConfigFromFlags(flags); err != nil { t.Fatal(err) } if err := store.Save(h); err != nil { t.Fatal(err) } h, err = store.Load(h.Name) if err != nil { log.Fatal(err) } actualURL, err := h.GetURL() if err != nil { t.Fatal(err) } if actualURL != expectedURL { t.Fatalf("GetURL is not %q, got %q", expectedURL, actualURL) } }