package repo_test

import (
	"encoding/xml"
	"strings"
	"testing"

	"github.com/google/go-cmp/cmp"
	"go.fuchsia.dev/infra/cmd/jiri2repo/repo"
)

func TestParseManifestFile(t *testing.T) {
	input := `
	<manifest>
		<remote name="android"
			    fetch=".."
			    review="sso://android/" />
		<remote name="fuchsia"
			    fetch=".."
				review="sso://fuchsia"
				revision="deadbeef" />

		<project name="integration"
				 path="integration-path" />
		<project name="fuchsia"
				 path="fuchsia-path"
				 remote="fuchsia-remote"
				 revision="fuchsia-revision" />
	</manifest>
	`

	want := repo.Manifest{
		XMLName: xml.Name{
			Space: "",
			Local: "manifest",
		},
		Remote: []repo.Remote{
			{
				Name:   "android",
				Fetch:  "..",
				Review: "sso://android/",
			},
			{
				Name:   "fuchsia",
				Fetch:  "..",
				Review: "sso://fuchsia",
			},
		},
		Project: []repo.Project{
			{
				Name: "integration",
				Path: "integration-path",
			},
			{
				Name:     "fuchsia",
				Path:     "fuchsia-path",
				Remote:   "fuchsia-remote",
				Revision: "fuchsia-revision",
			},
		},
	}

	var got repo.Manifest
	if err := repo.ParseManifest(strings.NewReader(input), &got); err != nil {
		t.Fatal(err)
	}

	if diff := cmp.Diff(want, got); diff != "" {
		t.Errorf("ParseManifestFile() mismatch (-want +got):\n%s", diff)
	}
}
