示例#1
0
        public async Task GetPeople_Broken1_ReturnsPeople()
        {
            var fakeReader = new BrokenReader(1);
            var retryDelay = new TimeSpan(0);
            var reader     = new RetryReader(fakeReader, retryDelay);

            var result = await reader.GetPeople();

            Assert.IsNotNull(result);
        }
示例#2
0
        private static void ComposeObjects()
        {
            var reader        = new ServiceReader();
            var delay         = new TimeSpan(0, 0, 3);
            var retryReader   = new RetryReader(reader, delay);
            var logger        = new FileLogger();
            var loggingReader = new ExceptionLoggingReader(retryReader, logger);
            var duration      = new TimeSpan(0, 0, 10);
            var cachingReader = new CachingReader(loggingReader, duration);
            var viewModel     = new PeopleReaderViewModel(cachingReader);

            Application.Current.MainWindow = new MainWindow(viewModel);
        }
 public SeparatedValueRecordParser(RetryReader reader, SeparatedValueOptions options)
 {
     this.reader = reader;
     this.options = options.Clone();
     this.separatorMatcher = getMatcher(options.Separator);
     this.recordSeparatorMatcher = getMatcher(options.RecordSeparator);
     if (options.RecordSeparator.StartsWith(options.Separator))
     {
         string postfix = options.RecordSeparator.Substring(options.Separator.Length);
         this.postfixMatcher = getMatcher(postfix);
     }
     this.token = new StringBuilder();
 }
示例#4
0
        private static void ComposeObjects()
        {
            var reader      = new ServiceReader();
            var delay       = new TimeSpan(0, 0, 3);
            var retryReader = new RetryReader(reader, delay);
            var logFilePath = AppDomain.CurrentDomain.BaseDirectory +
                              "ExceptionLog.txt";
            var logger        = new FileLogger(logFilePath);
            var loggingReader = new ExceptionLoggingReader(retryReader, logger);
            var cachingReader = new CachingReader(loggingReader);
            var viewModel     = new PeopleViewModel(cachingReader);

            Application.Current.MainWindow = new MainWindow(viewModel);
        }
示例#5
0
        public static ISeparatorMatcher GetMatcher(RetryReader reader, string separator)
        {
            if (separator == null)
            {
                return(new DefaultSeparatorMatcher(reader));
            }
            switch (separator.Length)
            {
            case 1: return(new OneCharacterSeparatorMatcher(reader, separator[0]));

            case 2: return(new TwoCharacterSeparatorMatcher(reader, separator[0], separator[1]));

            default: return(new StringSeparatorMatcher(reader, separator));
            }
        }
示例#6
0
        public async Task GetPeople_Broken3_ThrowsException()
        {
            var fakeReader = new BrokenReader(3);
            var retryDelay = new TimeSpan(0);
            var reader     = new RetryReader(fakeReader, retryDelay);

            try
            {
                var result = await reader.GetPeople();

                Assert.Fail("Exception was not thrown");
            }
            catch (Exception)
            {
                Assert.Pass("Exception thrown");
            }
        }
示例#7
0
        private static void ComposeObjects()
        {
            // Data Reader
            var readerUri = new ServiceReaderUri("http://localhost:9874");
            var reader    = new ServiceReader(readerUri);

            // Retry Function
            var delay       = new TimeSpan(0, 0, 3);
            var retryReader = new RetryReader(reader, delay);

            // Exception Logging Function
            var logFilePath   = AppDomain.CurrentDomain.BaseDirectory + "ExceptionLog.txt";
            var logger        = new FileLogger(logFilePath);
            var loggingReader = new ExceptionLoggingReader(retryReader, logger);

            // Caching Function
            var cachingReader = new CachingReader(loggingReader);

            var viewModel = new PeopleViewModel(retryReader);

            Application.Current.MainWindow = new MainWindow(viewModel);
        }
 public Matcher2(RetryReader reader, char first, char second)
 {
     this.reader = reader;
     this.first = first;
     this.second = second;
 }
 public Matcher1(RetryReader reader, char first)
 {
     this.reader = reader;
     this.first = first;
 }
 public Matcher(RetryReader reader, string separator)
 {
     this.reader = reader;
     this.separator = separator;
 }
示例#11
0
 public OneCharacterSeparatorMatcher(RetryReader reader, char first)
 {
     this.reader = reader;
     this.first  = first;
 }
示例#12
0
 public DefaultSeparatorMatcher(RetryReader reader)
 {
     this.reader = reader;
 }
示例#13
0
 public StringSeparatorMatcher(RetryReader reader, string separator)
 {
     this.reader    = reader;
     this.separator = separator;
 }
示例#14
0
 public TwoCharacterSeparatorMatcher(RetryReader reader, char first, char second)
 {
     this.reader = reader;
     this.first  = first;
     this.second = second;
 }