| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package service
- import (
- "context"
- "testing"
- "time"
- "github.com/Wei-Shaw/sub2api/internal/pkg/pagination"
- "github.com/stretchr/testify/require"
- )
- type announcementRepoStub struct {
- item *Announcement
- }
- func (s *announcementRepoStub) Create(_ context.Context, a *Announcement) error {
- s.item = a
- return nil
- }
- func (s *announcementRepoStub) GetByID(_ context.Context, _ int64) (*Announcement, error) {
- if s.item == nil {
- return nil, ErrAnnouncementNotFound
- }
- return s.item, nil
- }
- func (s *announcementRepoStub) Update(_ context.Context, a *Announcement) error {
- s.item = a
- return nil
- }
- func (*announcementRepoStub) Delete(context.Context, int64) error {
- return nil
- }
- func (*announcementRepoStub) List(context.Context, pagination.PaginationParams, AnnouncementListFilters) ([]Announcement, *pagination.PaginationResult, error) {
- return nil, nil, nil
- }
- func (*announcementRepoStub) ListActive(context.Context, time.Time) ([]Announcement, error) {
- return nil, nil
- }
- func TestAnnouncementServiceCreateRejectsEqualStartEndTimes(t *testing.T) {
- repo := &announcementRepoStub{}
- svc := NewAnnouncementService(repo, nil, nil, nil)
- now := time.Unix(1776790020, 0)
- _, err := svc.Create(context.Background(), &CreateAnnouncementInput{
- Title: "公告",
- Content: "内容",
- Status: AnnouncementStatusActive,
- NotifyMode: AnnouncementNotifyModePopup,
- StartsAt: &now,
- EndsAt: &now,
- })
- require.ErrorIs(t, err, ErrAnnouncementInvalidSchedule)
- }
- func TestAnnouncementServiceUpdateRejectsEqualStartEndTimes(t *testing.T) {
- repo := &announcementRepoStub{
- item: &Announcement{
- ID: 1,
- Title: "公告",
- Content: "内容",
- Status: AnnouncementStatusActive,
- NotifyMode: AnnouncementNotifyModePopup,
- },
- }
- svc := NewAnnouncementService(repo, nil, nil, nil)
- now := time.Unix(1776790020, 0)
- startsAt := &now
- endsAt := &now
- _, err := svc.Update(context.Background(), 1, &UpdateAnnouncementInput{
- StartsAt: &startsAt,
- EndsAt: &endsAt,
- })
- require.ErrorIs(t, err, ErrAnnouncementInvalidSchedule)
- }
|