public static void Main(string[] args) { var typeNameSerializer = new LegacyTypeNameSerializer(); var argParser = new ArgParser(); var arguments = argParser.Parse(args); bool enableBinaryPayloads = false; arguments.WithTypedKeyOptional <bool>("b", a => enableBinaryPayloads = bool.Parse(a.Value)) .FailWith(messsage("Invalid enable binary payloads (b) parameter")); IErrorMessageSerializer errorMessageSerializer; if (enableBinaryPayloads) { errorMessageSerializer = new Base64ErrorMessageSerializer(); } else { errorMessageSerializer = new DefaultErrorMessageSerializer(); } // poor man's dependency injection FTW ;) var program = new Program( argParser, new QueueRetreival(errorMessageSerializer), new FileMessageWriter(), new MessageReader(), new QueueInsertion(errorMessageSerializer), new ErrorRetry(new JsonSerializer(), errorMessageSerializer), new Conventions(typeNameSerializer)); program.Start(args); }
public ErrorRetryTests() { var typeNameSerializer = new LegacyTypeNameSerializer(); conventions = new Conventions(typeNameSerializer); errorRetry = new ErrorRetry(new JsonSerializer(), new DefaultErrorMessageSerializer()); }
public void Should_be_able_to_store_a_schedule_with_exchange() { var typeNameSerializer = new LegacyTypeNameSerializer(); var conventions = new Conventions(typeNameSerializer); var jsonSerializer = new JsonSerializer(); var messageSerializationStrategy = new DefaultMessageSerializationStrategy(typeNameSerializer, jsonSerializer, new DefaultCorrelationIdGenerationStrategy()); var testScheduleMessage = new TestScheduleMessage { Text = "Hello World" }; var serializedMessage = messageSerializationStrategy.SerializeMessage(new Message <TestScheduleMessage>(testScheduleMessage)); scheduleRepository.Store(new ScheduleMe { BindingKey = "", CancellationKey = "bcd", Exchange = conventions.ExchangeNamingConvention(typeof(TestScheduleMessage)), ExchangeType = ExchangeType.Topic, RoutingKey = "#", WakeTime = DateTime.UtcNow.AddMilliseconds(-1), InnerMessage = serializedMessage.Body, MessageProperties = serializedMessage.Properties }); }