func Diff(t *testing.T, name, s1, s2 string) { diff1 := strings.Split(strings.TrimSpace(s1), "\n") diff2 := strings.Split(strings.TrimSpace(s2), "\n") diff := difflib.Diff(diff1, diff2) diffs := []string{} // bigger than max prev := 1000000 for l, d := range diff { switch d.Delta { case difflib.LeftOnly: if (l - prev) > 1 { diffs = append(diffs, "") } diffs = append(diffs, fmt.Sprintf("%04d - %s", l, d.Payload)) prev = l case difflib.RightOnly: if (l - prev) > 1 { diffs = append(diffs, "") } diffs = append(diffs, fmt.Sprintf("%04d + %s", l, d.Payload)) prev = l } } if len(diffs) > 0 { t.Errorf("Unexpected results for %s:\n%s", name, strings.Join(diffs, "\n")) } }
func assertFixture(t *testing.T, name string, primary string) { data, err := ioutil.ReadFile(fmt.Sprintf("fixtures/%s.yml", name)) require.Nil(t, err) manifest, err := LoadManifest(string(data)) require.Nil(t, err) for i, _ := range manifest { if manifest[i].Name == primary { manifest[i].primary = true } } formation, err := manifest.Formation() require.Nil(t, err) data, err = ioutil.ReadFile(fmt.Sprintf("fixtures/%s.json", name)) require.Nil(t, err) diff1 := strings.Split(strings.TrimSpace(string(data)), "\n") diff2 := strings.Split(strings.TrimSpace(formation), "\n") diff := difflib.Diff(diff1, diff2) diffs := []string{} // bigger than max prev := 1000000 for l, d := range diff { switch d.Delta { case difflib.LeftOnly: if (l - prev) > 1 { diffs = append(diffs, "") } diffs = append(diffs, fmt.Sprintf("%04d - %s", l, d.Payload)) prev = l case difflib.RightOnly: if (l - prev) > 1 { diffs = append(diffs, "") } diffs = append(diffs, fmt.Sprintf("%04d + %s", l, d.Payload)) prev = l } } if len(diffs) > 0 { t.Errorf("Unexpected results for %s:\n%s", name, strings.Join(diffs, "\n")) } }