diff --git a/binding/application.go b/binding/application.go index 8927b62fa..881d991b0 100644 --- a/binding/application.go +++ b/binding/application.go @@ -319,6 +319,23 @@ func (h *Application) Analysis(id uint) (a Analysis) { return } +// +// Create an Application Assessment. +func (h *Application) CreateAssesment(id uint, r *api.Assessment) (err error) { + path := Path(api.AppAssessmentsRoot).Inject(Params{api.ID: id}) + err = h.client.Post(path, &r) + return +} + +// +// Get Application Assessments. +func (h *Application) GetAssesments(id uint) (list []api.Assessment, err error) { + list = []api.Assessment{} + path := Path(api.AppAssessmentsRoot).Inject(Params{api.ID: id}) + err = h.client.Get(path, &list) + return +} + // // Analysis API. type Analysis struct { diff --git a/test/api/assessment/api_test.go b/test/api/assessment/api_test.go index 1445021e8..643d1dc88 100644 --- a/test/api/assessment/api_test.go +++ b/test/api/assessment/api_test.go @@ -4,16 +4,23 @@ import ( "fmt" "testing" + "github.com/konveyor/tackle2-hub/api" "github.com/konveyor/tackle2-hub/test/assert" ) func TestAssessmentCRUD(t *testing.T) { for _, r := range Samples { t.Run(fmt.Sprintf("%s for application %s", r.Questionnaire.Name, r.Application.Name), func(t *testing.T) { - // Create. - err := Assessment.Create(&r) - if err != nil { - t.Errorf(err.Error()) + // Create via parent resource. + if r.Application.Name != "" { + app := api.Application{Name: r.Application.Name} + assert.Must(t, RichClient.Application.Create(&app)) + r.Application.ID = app.ID + err := RichClient.Application.CreateAssesment(app.ID, &r) + if err != nil { + t.Errorf(err.Error()) + } + } // Get. @@ -25,9 +32,9 @@ func TestAssessmentCRUD(t *testing.T) { t.Errorf("Different response error. Got %v, expected %v", got, r) } - // Update. - r.Name = "Updated " + r.Name - r.Required = false + // Update example - select green instead of blue. + r.Sections[0].Questions[0].Answers[2].Selected = false // blue (default) + r.Sections[0].Questions[0].Answers[1].Selected = true // green err = Assessment.Update(&r) if err != nil { t.Errorf(err.Error()) @@ -37,11 +44,11 @@ func TestAssessmentCRUD(t *testing.T) { if err != nil { t.Errorf(err.Error()) } - if got.Name != r.Name { - t.Errorf("Different response error. Got %s, expected %s", got.Name, r.Name) + if got.Sections[0].Questions[0].Answers[2].Selected { // blue not selected + t.Errorf("Different response error. Blue should not be selected.") } - if got.Required != false { - t.Errorf("Required should be false after update. Got %+v, expected %+v", got, r) + if !got.Sections[0].Questions[0].Answers[1].Selected { // green selected + t.Errorf("Different response error. Green should be selected.") } // Delete. @@ -54,28 +61,8 @@ func TestAssessmentCRUD(t *testing.T) { if err == nil { t.Errorf("Resource exits, but should be deleted: %v", r) } - }) - } -} - -func TestAssessmentList(t *testing.T) { - samples := Samples - for name := range samples { - sample := samples[name] - assert.Must(t, Assessment.Create(&sample)) - samples[name] = sample - } - - got, err := Assessment.List() - if err != nil { - t.Errorf(err.Error()) - } - if assert.FlatEqual(got, &samples) { - t.Errorf("Different response error. Got %v, expected %v", got, samples) - } - - for _, r := range samples { - assert.Must(t, Assessment.Delete(r.ID)) + assert.Must(t, RichClient.Application.Delete(r.Application.ID)) + }) } } diff --git a/test/api/assessment/samples.go b/test/api/assessment/samples.go index 7fce20351..961562bcb 100644 --- a/test/api/assessment/samples.go +++ b/test/api/assessment/samples.go @@ -9,12 +9,13 @@ import ( // Set of valid resources for tests and reuse. var ( - Assessment1 = api.Assessment{ + ApplicationAssessment1 = api.Assessment{ // Ref resource are created by the test. Application: &api.Ref{ Name: application.Minimal.Name, }, Questionnaire: api.Ref{ + ID: 1, Name: questionnaire.Questionnaire1.Name, }, Sections: []assessment.Section{ @@ -49,5 +50,5 @@ var ( }, }, } - Samples = []api.Assessment{Assessment1} + Samples = []api.Assessment{ApplicationAssessment1} )