Revision 41a5a2e61953c434414934e8c3800db9b8a8e113 authored by Alexandra Johnson on 13 February 2019, 19:27:47 UTC, committed by Kubernetes Prow Robot on 13 February 2019, 19:27:47 UTC
Looks like Google protobufs might also be a dependency?
1 parent d6ea2d5
Raw File
main_test.go
package main

import (
	"context"
	"testing"

	"github.com/golang/mock/gomock"

	api "github.com/kubeflow/katib/pkg/api"
	mockdb "github.com/kubeflow/katib/pkg/mock/db"
	mockmodelstore "github.com/kubeflow/katib/pkg/mock/modelstore"
)

func TestCreateStudy(t *testing.T) {
	ctrl := gomock.NewController(t)
	defer ctrl.Finish()
	mockDB := mockdb.NewMockVizierDBInterface(ctrl)
	mockModelStore := mockmodelstore.NewMockModelStore(ctrl)
	sid := "teststudy"
	sc := &api.StudyConfig{
		Name:               "test",
		Owner:              "admin",
		OptimizationType:   1,
		ObjectiveValueName: "obj_name",
	}
	dbIf = mockDB
	mockDB.EXPECT().CreateStudy(
		sc,
	).Return(sid, nil)
	ssr := &api.SaveStudyRequest{
		StudyName:   "test",
		Owner:       "admin",
		Description: "StudyID: " + sid,
	}
	mockModelStore.EXPECT().SaveStudy(ssr).Return(nil)

	s := &server{
		msIf: mockModelStore,
	}
	req := &api.CreateStudyRequest{StudyConfig: sc}
	ret, err := s.CreateStudy(context.Background(), req)
	if err != nil {
		t.Fatalf("CreateStudy Error %v", err)
	}
	if ret.StudyId != sid {
		t.Fatalf("Study ID expect "+sid+", get %s", ret.StudyId)
	}
}
func TestGetStudies(t *testing.T) {
	ctrl := gomock.NewController(t)
	defer ctrl.Finish()
	mockDB := mockdb.NewMockVizierDBInterface(ctrl)
	mockModelStore := mockmodelstore.NewMockModelStore(ctrl)
	sid := []string{"teststudy1", "teststudy2"}
	s := &server{
		msIf: mockModelStore,
	}
	dbIf = mockDB
	sc := []*api.StudyConfig{
		&api.StudyConfig{
			Name:               "test1",
			Owner:              "admin",
			OptimizationType:   1,
			ObjectiveValueName: "obj_name1",
		},
		&api.StudyConfig{
			Name:               "test2",
			Owner:              "admin",
			OptimizationType:   1,
			ObjectiveValueName: "obj_name2",
		},
	}
	mockDB.EXPECT().GetStudyList().Return(sid, nil)
	for i := range sid {
		mockDB.EXPECT().GetStudyConfig(sid[i]).Return(sc[i], nil)
	}

	req := &api.GetStudyListRequest{}
	ret, err := s.GetStudyList(context.Background(), req)
	if err != nil {
		t.Fatalf("CreateStudy Error %v", err)
	}
	if len(ret.StudyOverviews) != len(sid) {
		t.Fatalf("Study Info number %d, expected%d", len(ret.StudyOverviews), len(sid))
	} else {
		var j int
		for i := range sid {
			switch ret.StudyOverviews[i].Id {
			case sid[0]:
				j = 0
			case sid[1]:
				j = 1
			default:
				t.Fatalf("GetStudy Error Study ID %s is not expected", ret.StudyOverviews[j].Id)
			}
			if ret.StudyOverviews[i].Name != sc[j].Name {
				t.Fatalf("GetStudy Error Name %s expected %s", ret.StudyOverviews[i].Name, sc[j].Name)
			}
			if ret.StudyOverviews[i].Owner != sc[j].Owner {
				t.Fatalf("GetStudy Error Owner %s expected %s", ret.StudyOverviews[i].Owner, sc[j].Owner)
			}
		}
	}
}
back to top