From f15ef5f5c0033dd58fe50ac832d3feb99f7485bd Mon Sep 17 00:00:00 2001 From: Yash Khare Date: Tue, 8 Aug 2023 12:30:55 +0530 Subject: [PATCH] update tests to add MigrationWave.List() Signed-off-by: Yash Khare --- test/api/migrationwave/api_test.go | 110 +++++++++++++++++++++++++---- 1 file changed, 96 insertions(+), 14 deletions(-) diff --git a/test/api/migrationwave/api_test.go b/test/api/migrationwave/api_test.go index 0d13521b4..d9e4d5d81 100644 --- a/test/api/migrationwave/api_test.go +++ b/test/api/migrationwave/api_test.go @@ -10,22 +10,29 @@ import ( func TestReviewCRUD(t *testing.T) { for _, r := range Samples { - expectedApp := api.Application{ - Name: "Sample Application", - Description: "Sample application", + for _, app := range r.Applications { + expectedApp := api.Application{ + Name: app.Name, + Description: "Sample application", + } + assert.Must(t, Application.Create(&expectedApp)) } - assert.Must(t, Application.Create(&expectedApp)) - expectedStakeholder := api.Stakeholder{ - Name: "Sample Stakeholder", - Email: "sample@example.com", + for _, stakeholder := range r.Stakeholders { + expectedStakeholder := api.Stakeholder{ + Name: stakeholder.Name, + Email: "sample@example.com", + } + assert.Must(t, Stakeholder.Create(&expectedStakeholder)) } - assert.Must(t, Stakeholder.Create(&expectedStakeholder)) - expectedStakeholderGroup := api.StakeholderGroup{ - Name: "Sample Stakeholder Group", + for _, stakeholderGroup := range r.StakeholderGroups { + expectedStakeholderGroup := api.StakeholderGroup{ + Name: stakeholderGroup.Name, + Description: "Sample Stakeholder Group", + } + assert.Must(t, StakeholderGroup.Create(&expectedStakeholderGroup)) } - assert.Must(t, StakeholderGroup.Create(&expectedStakeholderGroup)) assert.Must(t, MigrationWave.Create(&r)) @@ -52,9 +59,15 @@ func TestReviewCRUD(t *testing.T) { AssertEqualMigrationWaves(t, got, r) // Delete created Applications, Stakeholders,StakeholdersGroup and MigrationWave - assert.Must(t, Application.Delete(expectedApp.ID)) - assert.Must(t, Stakeholder.Delete(expectedStakeholder.ID)) - assert.Must(t, StakeholderGroup.Delete(expectedStakeholderGroup.ID)) + for _, app := range r.Applications { + assert.Must(t, Application.Delete(app.ID)) + } + for _, stakeholder := range r.Stakeholders { + assert.Must(t, Stakeholder.Delete(stakeholder.ID)) + } + for _, stakeholderGroup := range r.StakeholderGroups { + assert.Must(t, StakeholderGroup.Delete(stakeholderGroup.ID)) + } assert.Must(t, MigrationWave.Delete(r.ID)) // Check if the MigrationWave is present even after deletion or not. @@ -65,6 +78,75 @@ func TestReviewCRUD(t *testing.T) { } } +func TestMigrationWaveList(t *testing.T) { + createdMigrationWaves := []api.MigrationWave{} + + for _, r := range Samples { + for _, app := range r.Applications { + expectedApp := api.Application{ + Name: app.Name, + Description: "Sample application", + } + assert.Must(t, Application.Create(&expectedApp)) + } + + for _, stakeholder := range r.Stakeholders { + expectedStakeholder := api.Stakeholder{ + Name: stakeholder.Name, + Email: "sample@example.com", + } + assert.Must(t, Stakeholder.Create(&expectedStakeholder)) + } + + for _, stakeholderGroup := range r.StakeholderGroups { + expectedStakeholderGroup := api.StakeholderGroup{ + Name: stakeholderGroup.Name, + Description: "Sample Stakeholder Group", + } + assert.Must(t, StakeholderGroup.Create(&expectedStakeholderGroup)) + } + + assert.Must(t, MigrationWave.Create(&r)) + createdMigrationWaves = append(createdMigrationWaves, r) + } + + // List MigrationWaves. + got, err := MigrationWave.List() + if err != nil { + t.Errorf(err.Error()) + } + + // Compare contents of migration waves. + for _, createdMigrationWave := range createdMigrationWaves { + found := false + for _, retrievedReview := range got { + if assert.FlatEqual(createdMigrationWave.ID, retrievedReview.ID) { + found = true + break + } + } + if !found { + t.Errorf("Expected review not found in the list: %v", createdMigrationWave) + } + } + + // Delete created resources. + for _, createdMigrationWave := range createdMigrationWaves { + for _, app := range createdMigrationWave.Applications { + assert.Must(t, Application.Delete(app.ID)) + } + + for _, stakeholder := range createdMigrationWave.Stakeholders { + assert.Must(t, Stakeholder.Delete(stakeholder.ID)) + } + + for _, stakeholderGroup := range createdMigrationWave.StakeholderGroups { + assert.Must(t, StakeholderGroup.Delete(stakeholderGroup.ID)) + } + assert.Must(t, MigrationWave.Delete(createdMigrationWave.ID)) + } +} + func AssertEqualMigrationWaves(t *testing.T, got *api.MigrationWave, expected api.MigrationWave) { if got.Name != expected.Name { t.Errorf("Different MigrationWave Name Got %v, expected %v", got.Name, expected.Name)