repo = &MockDeliveryRepository{} send = &MockDeliverySender{} }) AfterEach(func() { test.VerifyMock(repo.Mock, send.Mock) }) JustBeforeEach(func() { subject := &ProcessDelivery{repo, send} err = subject.Exec(context.Background(), delivery) }) Context("working ports", func() { BeforeEach(func() { delivery = fake.DeliveryEntity() repo. On("StartDelivery", delivery). Return(int64(1), time.Now().Add(1*time.Second), nil) repo.On("MarkDeliverySuccess", int64(1), delivery).Return(nil) send.On("SendDelivery", delivery).Return(nil) }) It("succeeds", func() { Expect(err).To(BeNil()) }) }) Context("invalid delivery", func() { BeforeEach(func() {
}) }) }) Describe("SaveDeliveries", func() { var ( cursor string ds []entity.Delivery err error ) BeforeEach(func() { cursor = "123" ds = []entity.Delivery{ fake.DeliveryEntity(), fake.DeliveryEntity(), } subject = Driver{DB: db} }) JustBeforeEach(func() { err = subject.SaveDeliveries(cursor, ds) }) It("saves the cursor", func() { saved, err := subject.LoadCursor() Expect(err).To(BeNil()) Expect(saved).To(Equal(cursor)) })