// TestGetCountsPerIteration makes sure that the query being executed is correctly returning // the counts of work items func (s *workItemRepoBlackBoxTest) TestGetCountsPerIteration() { defer cleaner.DeleteCreatedEntities(s.DB)() // create seed data spaceRepo := space.NewRepository(s.DB) spaceInstance := space.Space{ Name: "Testing space", } spaceRepo.Create(context.Background(), &spaceInstance) fmt.Println("space id = ", spaceInstance.ID) assert.NotEqual(s.T(), uuid.UUID{}, spaceInstance.ID) iterationRepo := iteration.NewIterationRepository(s.DB) iteration1 := iteration.Iteration{ Name: "Sprint 1", SpaceID: spaceInstance.ID, } iterationRepo.Create(context.Background(), &iteration1) fmt.Println("iteration1 id = ", iteration1.ID) assert.NotEqual(s.T(), uuid.UUID{}, iteration1.ID) iteration2 := iteration.Iteration{ Name: "Sprint 2", SpaceID: spaceInstance.ID, } iterationRepo.Create(context.Background(), &iteration2) fmt.Println("iteration2 id = ", iteration2.ID) assert.NotEqual(s.T(), uuid.UUID{}, iteration2.ID) for i := 0; i < 3; i++ { s.repo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("New issue #%d", i), workitem.SystemState: workitem.SystemStateNew, workitem.SystemIteration: iteration1.ID.String(), }, "xx") } for i := 0; i < 2; i++ { s.repo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("Closed issue #%d", i), workitem.SystemState: workitem.SystemStateClosed, workitem.SystemIteration: iteration1.ID.String(), }, "xx") } countsMap, _ := s.repo.GetCountsPerIteration(context.Background(), spaceInstance.ID) assert.Len(s.T(), countsMap, 1) require.Contains(s.T(), countsMap, iteration1.ID.String()) assert.Equal(s.T(), 5, countsMap[iteration1.ID.String()].Total) assert.Equal(s.T(), 2, countsMap[iteration1.ID.String()].Closed) }
func (rest *TestSpaceIterationREST) TestWICountsWithIterationListBySpace() { t := rest.T() resource.Require(t, resource.Database) // create seed data spaceRepo := space.NewRepository(rest.DB) spaceInstance := space.Space{ Name: "Testing space", } spaceRepo.Create(context.Background(), &spaceInstance) fmt.Println("space id = ", spaceInstance.ID) assert.NotEqual(rest.T(), uuid.UUID{}, spaceInstance.ID) iterationRepo := iteration.NewIterationRepository(rest.DB) iteration1 := iteration.Iteration{ Name: "Sprint 1", SpaceID: spaceInstance.ID, } iterationRepo.Create(context.Background(), &iteration1) fmt.Println("iteration1 id = ", iteration1.ID) assert.NotEqual(rest.T(), uuid.UUID{}, iteration1.ID) iteration2 := iteration.Iteration{ Name: "Sprint 2", SpaceID: spaceInstance.ID, } iterationRepo.Create(context.Background(), &iteration2) fmt.Println("iteration2 id = ", iteration2.ID) assert.NotEqual(rest.T(), uuid.UUID{}, iteration2.ID) wirepo := workitem.NewWorkItemRepository(rest.DB) for i := 0; i < 3; i++ { wirepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("New issue #%d", i), workitem.SystemState: workitem.SystemStateNew, workitem.SystemIteration: iteration1.ID.String(), }, "xx") } for i := 0; i < 2; i++ { wirepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("Closed issue #%d", i), workitem.SystemState: workitem.SystemStateClosed, workitem.SystemIteration: iteration1.ID.String(), }, "xx") } svc, ctrl := rest.UnSecuredController() _, cs := test.ListSpaceIterationsOK(t, svc.Context, svc, ctrl, spaceInstance.ID.String()) assert.Len(t, cs.Data, 2) for _, iterationItem := range cs.Data { if iterationItem.ID.String() == iteration1.ID.String() { assert.Equal(t, 5, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 2, iterationItem.Relationships.Workitems.Meta["closed"]) } else if iterationItem.ID.String() == iteration2.ID.String() { assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["closed"]) } } // seed 5 WI to iteration2 for i := 0; i < 5; i++ { wirepo.Create( context.Background(), workitem.SystemBug, map[string]interface{}{ workitem.SystemTitle: fmt.Sprintf("New issue #%d", i), workitem.SystemState: workitem.SystemStateNew, workitem.SystemIteration: iteration2.ID.String(), }, "xx") } _, cs = test.ListSpaceIterationsOK(t, svc.Context, svc, ctrl, spaceInstance.ID.String()) assert.Len(t, cs.Data, 2) for _, iterationItem := range cs.Data { if iterationItem.ID.String() == iteration1.ID.String() { assert.Equal(t, 5, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 2, iterationItem.Relationships.Workitems.Meta["closed"]) } else if iterationItem.ID.String() == iteration2.ID.String() { assert.Equal(t, 5, iterationItem.Relationships.Workitems.Meta["total"]) assert.Equal(t, 0, iterationItem.Relationships.Workitems.Meta["closed"]) } } }
func (g *GormBase) Spaces() space.Repository { return space.NewRepository(g.db) }
func (test *repoBBTest) SetupTest() { test.repo = space.NewRepository(test.DB) test.clean = cleaner.DeleteCreatedEntities(test.DB) }