package main

import "testing"

func TestFixture(t *testing.T) {
	r, e := load("synthetic.json")
	if e != nil {
		t.Fatal(e)
	}
	if e = validate(r); e != nil {
		t.Fatal(e)
	}
}
func TestNegativeFixtures(t *testing.T) {
	edits := []func(*Review){
		func(r *Review) { r.Actions[0].Owner = "" },
		func(r *Review) { r.Actions[0].Due = "next week" },
		func(r *Review) { r.Actions[0].Acceptance = "" },
		func(r *Review) { r.Actions[0].Status = "done" },
		func(r *Review) { r.Events[0].Evidence = "" },
		func(r *Review) { r.Events[0].Kind = "guess-is-fact" },
		func(r *Review) { r.Events[0], r.Events[3] = r.Events[3], r.Events[0] },
	}
	for i, edit := range edits {
		r, e := load("synthetic.json")
		if e != nil {
			t.Fatal(e)
		}
		edit(&r)
		if validate(r) == nil {
			t.Fatalf("negative fixture %d accepted", i)
		}
	}
}
