package util import ( "reflect" "testing" kapi "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/util/diff" "github.com/google/gofuzz" "github.com/openshift/origin/pkg/project/api" ) // TestProjectFidelity makes sure that the project to namespace round trip does not lose any data func TestProjectFidelity(t *testing.T) { f := fuzz.New().NilChance(0) p := &api.Project{} for i := 0; i < 100; i++ { f.Fuzz(p) p.TypeMeta = unversioned.TypeMeta{} // Ignore TypeMeta namespace := ConvertProject(p) p2 := ConvertNamespace(namespace) if !reflect.DeepEqual(p, p2) { t.Errorf("project data not preserved; the diff is %s", diff.ObjectDiff(p, p2)) } } } // TestNamespaceFidelity makes sure that the namespace to project round trip does not lose any data func TestNamespaceFidelity(t *testing.T) { f := fuzz.New().NilChance(0) n := &kapi.Namespace{} for i := 0; i < 100; i++ { f.Fuzz(n) n.TypeMeta = unversioned.TypeMeta{} // Ignore TypeMeta project := ConvertNamespace(n) n2 := ConvertProject(project) if !reflect.DeepEqual(n, n2) { t.Errorf("namespace data not preserved; the diff is %s", diff.ObjectDiff(n, n2)) } } }