func ExampleCompare() { type ShipManifest struct { Name string Crew map[string]string Androids int Stolen bool } reported := &ShipManifest{ Name: "Spaceship Heart of Gold", Crew: map[string]string{ "Zaphod Beeblebrox": "Galactic President", "Trillian": "Human", "Ford Prefect": "A Hoopy Frood", "Arthur Dent": "Along for the Ride", }, Androids: 1, Stolen: true, } expected := &ShipManifest{ Name: "Spaceship Heart of Gold", Crew: map[string]string{ "Rowan Artosok": "Captain", }, Androids: 1, Stolen: false, } fmt.Println(pretty.Compare(reported, expected)) // Output: // { // Name: "Spaceship Heart of Gold", // Crew: { // - Arthur Dent: "Along for the Ride", // - Ford Prefect: "A Hoopy Frood", // - Trillian: "Human", // - Zaphod Beeblebrox: "Galactic President", // + Rowan Artosok: "Captain", // }, // Androids: 1, // - Stolen: true, // + Stolen: false, // } }
func checkManifest(t *testing.T, workingDir string, wantedManifest schema.ImageManifest) { acipath := path.Join(workingDir, ".acbuild", "currentaci") manblob, err := ioutil.ReadFile(path.Join(acipath, aci.ManifestFile)) if err != nil { panic(err) } var man schema.ImageManifest err = man.UnmarshalJSON(manblob) if err != nil { t.Errorf("invalid manifest schema: %v", err) } if str := pretty.Compare(man, wantedManifest); str != "" { t.Errorf("unexpected manifest:\n%s", str) } }