package org

/*
func TestGetUserProfile(t *testing.T) {
	convey.Convey("GetUserProfile", t, func() {
		ctrl := gomock.NewController(t)
		defer ctrl.Finish()

		mockUserSvc := userSvc.NewMockUserSvcIface(ctrl)
		mockProjectSvc := projectSvc.NewMockProjectSvcIface(ctrl)

		s := NewOrgController(mockUserSvc, mockProjectSvc)
		var orgID uint64 = 1

		convey.Convey("project not found", func() {
			ctx := context.TODO()

			dbUser := entity.User{}
			tenantUser := tenant.User{
				IsImpersonated: false,
				User:           dbUser,
				TenantID:       entity.ID(orgID),
			}

			ctx = context.WithValue(ctx, auth0.AuthTokenClaimKey, &tenantUser)

			req := &central.OrgIdReq{OrgId: orgID}

			mockUserSvc.EXPECT().GetUserByID(ctx, uint64(tenantUser.ID)).Return(&dbUser, nil)
			mockProjectSvc.EXPECT().ListAvailableProjects(ctx, tenantUser.ID.Uint64(), req.OrgId, false).Return(nil, gorm.ErrRecordNotFound)

			user, err := s.GetUserProfile(ctx, req)
			convey.So(err, convey.ShouldEqual, gorm.ErrRecordNotFound)
			convey.So(user, convey.ShouldBeNil)
		})

		convey.Convey("org not found", func() {
			ctx := context.TODO()

			dbUser := entity.User{}
			tenantUser := tenant.User{
				IsImpersonated: false,
				User:           dbUser,
				TenantID:       entity.ID(orgID),
			}
			projects := []entity.Project{{}}

			ctx = context.WithValue(ctx, auth0.AuthTokenClaimKey, &tenantUser)

			req := &central.OrgIdReq{OrgId: orgID}

			mockUserSvc.EXPECT().GetUserByID(ctx, uint64(tenantUser.ID)).Return(&dbUser, nil)
			mockProjectSvc.EXPECT().ListAvailableProjects(ctx, tenantUser.ID.Uint64(), req.OrgId, false).Return(projects, nil)
			mockUserSvc.EXPECT().GetUserOrg(ctx).Return(nil, gorm.ErrRecordNotFound)

			user, err := s.GetUserProfile(ctx, req)
			convey.So(err, convey.ShouldEqual, gorm.ErrRecordNotFound)
			convey.So(user, convey.ShouldBeNil)
		})


			convey.Convey("get user profile success", func() {
						ctx := context.TODO()

						dbUser := entity.User{}
						tenantUser := tenant.User{
							IsImpersonated: false,
							User:           dbUser,
							TenantID:       entity.ID(orgID),
						}
						projects := []entity.Project{{}}
						org := &entity.Tenant{}

						ctx = context.WithValue(ctx, auth0.AuthTokenClaimKey, &tenantUser)

						req := &central.OrgIdReq{OrgId: orgID}

						mockUserSvc.EXPECT().GetUserByID(ctx, uint64(tenantUser.ID)).Return(&dbUser, nil)
						mockProjectSvc.EXPECT().ListAvailableProjects(ctx, tenantUser.ID.Uint64(), req.OrgId, false).Return(projects, nil)
						mockUserSvc.EXPECT().GetUserOrg(ctx).Return(org, nil)
						userId := dbUser.ID.Uint64()
						mockUserSvc.EXPECT().IsExist(ctx, &userId).Return(false, nil)

						_, err := s.GetUserProfile(ctx, req)
						convey.So(err, convey.ShouldBeNil)
					})

})
}
*/
