protected void GivenSendIsSuccessful()
        {
            var success = true;

            LogShipperDelegator.Setup(
                x => x.SendRecords(It.Is <List <string> >(s => s.Count > 0 && s.Count <= Options.Object.BatchPostingLimit), out success)
                )
            .Returns(Fixture.Create <string>())
            .Callback((List <string> batch, bool b) =>
            {
                SentBatches++;
                SentRecords += batch.Count;
            });
        }
        protected void GivenSendIsFailed()
        {
            var success  = false;
            var response = Fixture.Create <string>();

            LogShipperDelegator.Setup(
                x => x.SendRecords(It.Is <List <string> >(s => s.Count > 0 && s.Count <= Options.Object.BatchPostingLimit), out success)
                )
            .Returns(response);

            LogShipperDelegator.Setup(
                x => x.HandleError(response, It.IsAny <int>())
                )
            .Callback((string resp, int recs) =>
            {
                FailedBatches++;
                FailedRecords += recs;
            });
        }
        public void SetUp()
        {
            CurrentLogFileName     = null;
            CurrentLogFilePosition = 0;

            TargetOnLogSendError = DefaultTargetOnLogSendError;

            _mockRepository = new MockRepository(MockBehavior.Strict);

            Fixture = new Fixture().Customize(
                new AutoMoqCustomization()
                );

            BatchPostingLimit = Fixture.Create <int>();
            LogFolder         = Path.GetDirectoryName(Path.GetTempPath());
            LogFileNamePrefix = Guid.NewGuid().ToString("N");


            LogReaderFactory = _mockRepository.Create <ILogReaderFactory>();
            Fixture.Inject(LogReaderFactory.Object);

            PersistedBookmarkFactory = _mockRepository.Create <IPersistedBookmarkFactory>();
            Fixture.Inject(PersistedBookmarkFactory.Object);

            LogShipperFileManager = _mockRepository.Create <ILogShipperFileManager>();
            Fixture.Inject(LogShipperFileManager.Object);

            SentBatches         = SentRecords = 0;
            FailedBatches       = FailedRecords = 0;
            LogShipperDelegator = _mockRepository.Create <ILogShipperProtectedDelegator>();
            Fixture.Inject(LogShipperDelegator.Object);

            LogShipperDelegator.Setup(x => x.PrepareRecord(It.Is <MemoryStream>(s => s.Length > 0)))
            .Returns((MemoryStream s) => new string('a', (int)s.Length));

            SetUpSinkOptions();
        }