public SqsTestContext(object fixture)
        {
            Address = new Address(fixture.GetType().Name, Environment.MachineName);
			ConnectionConfiguration = 
				SqsConnectionStringParser.Parse(ConfigurationManager.AppSettings["TestConnectionString"]);

            S3Client = AwsClientFactory.CreateS3Client(ConnectionConfiguration);
            SqsClient = AwsClientFactory.CreateSqsClient(ConnectionConfiguration);

			Creator = new SqsQueueCreator
			{
				ConnectionConfiguration = ConnectionConfiguration,
				SqsClient = SqsClient,
                S3Client = S3Client
			};
	        
            _receivedMessages = new Subject<TransportMessage>();
            _exceptionsThrownByReceiver = new Subject<Exception>();

			QueueUrlCache = new SqsQueueUrlCache
			{
                SqsClient = SqsClient,
				ConnectionConfiguration = ConnectionConfiguration
			};


            Sender = new SqsQueueSender
            {
	            ConnectionConfiguration = ConnectionConfiguration,
	            SqsClient = SqsClient,
                S3Client = S3Client,
	            QueueUrlCache = QueueUrlCache,
				QueueCreator = Creator
            };

	        DequeueStrategy = new SqsDequeueStrategy(null)
	        {
		        ConnectionConfiguration = ConnectionConfiguration,
                SqsClient = SqsClient,
                S3Client = S3Client
            };
	        
        }
        public SqsTestContext(object fixture)
        {
            Address = new Address(fixture.GetType().Name, Environment.MachineName);
            ConnectionConfiguration =
                SqsConnectionStringParser.Parse(ConfigurationManager.AppSettings["TestConnectionString"]);

            S3Client  = AwsClientFactory.CreateS3Client(ConnectionConfiguration);
            SqsClient = AwsClientFactory.CreateSqsClient(ConnectionConfiguration);

            Creator = new SqsQueueCreator
            {
                ConnectionConfiguration = ConnectionConfiguration,
                SqsClient = SqsClient,
                S3Client  = S3Client
            };

            _receivedMessages           = new Subject <TransportMessage>();
            _exceptionsThrownByReceiver = new Subject <Exception>();

            QueueUrlCache = new SqsQueueUrlCache
            {
                SqsClient = SqsClient,
                ConnectionConfiguration = ConnectionConfiguration
            };


            Sender = new SqsQueueSender
            {
                ConnectionConfiguration = ConnectionConfiguration,
                SqsClient     = SqsClient,
                S3Client      = S3Client,
                QueueUrlCache = QueueUrlCache,
                QueueCreator  = Creator
            };

            DequeueStrategy = new SqsDequeueStrategy(null)
            {
                ConnectionConfiguration = ConnectionConfiguration,
                SqsClient = SqsClient,
                S3Client  = S3Client
            };
        }