Example #1
0
        public void ShouldSetSourceQueueWithParameterFromAppsettings()
        {
            var rmqPublisherMock    = Substitute.For <IRmqPublisher>();
            var rmqConsumerMock     = Substitute.For <IRmqConsumer>();
            var csvToJsonParserMock = Substitute.For <ICsvConverter>();

            var configSample =
                @"{
""Config"":{
    ""Binding"": {
            ""ReceiverQueue"": ""S0urc3Qu3u3"",
            ""SenderExchange"": ""TestExchange"",
            ""SenderRoutingKeys"": ""RoutingKey1 RoutingKey2 RoutingKey3""
        },
    ""Application"": {
            ""Columns"": ""1 2 3 4 5 6 7"",
            ""Rows"": ""76""
        }
    }
}";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(configSample)))
            {
                var builder = new ConfigurationBuilder().AddJsonStream(ms);
                var configurationSection = builder
                                           .Build()
                                           .GetSection("Config");

                var sut = new CsvToJsonConverterEngine(
                    configurationSection,
                    rmqConsumerMock,
                    rmqPublisherMock,
                    csvToJsonParserMock);

                // Act
                sut.Start();
            }

            // Assert
            rmqConsumerMock
            .Received(1)
            .SetQueue(Arg.Is("S0urc3Qu3u3"));
        }
Example #2
0
        public void ShouldSetCsvToJsonParserWithCertainData()
        {
            var rmqPublisherMock    = Substitute.For <IRmqPublisher>();
            var rmqConsumerMock     = Substitute.For <IRmqConsumer>();
            var csvToJsonParserMock = Substitute.For <ICsvConverter>();

            var configSample =
                @"{
""Config"":{
    ""Binding"": {
            ""ReceiverQueue"": ""S0urc3Qu3u3"",
            ""SenderExchange"": ""TestExchange"",
            ""SenderRoutingKeys"": ""RoutingKey1 RoutingKey2 RoutingKey3""
        },
    ""Application"": {
            ""Columns"": ""1 2 3 4 5 6 7"",
            ""Rows"": ""76""
        }
    }
}";

            string testData =
                @"#,Name,City
1,Gauguin,Paris
2,Cezanne,Aix-en-Provence
3,Edgar,Paris
4.Claude,Paris 
5,Edouard,Paris
6,Renoir,Limotges";

            rmqConsumerMock
            .When(w => w.StartListening(Arg.Any <EventHandler <BasicDeliverEventArgs> >()))
            .Do((args) =>
            {
                byte[] fakeBytesUrl = Encoding.UTF8.GetBytes(testData);
                args.Arg <EventHandler <BasicDeliverEventArgs> >().Invoke(this, new BasicDeliverEventArgs()
                {
                    Body = Encoding.UTF8.GetBytes(testData)
                });
            });

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(configSample)))
            {
                var builder = new ConfigurationBuilder().AddJsonStream(ms);
                var configurationSection = builder
                                           .Build()
                                           .GetSection("Config");

                var sut = new CsvToJsonConverterEngine(
                    configurationSection,
                    rmqConsumerMock,
                    rmqPublisherMock,
                    csvToJsonParserMock);

                // Act
                sut.Start();
            }

            // Assert
            csvToJsonParserMock
            .Received(1)
            .ConvertToJson(
                Arg.Any <string>(),
                Arg.Is <string>(testData),
                Arg.Is <int[]>(e => new int[] { 1, 2, 3, 4, 5, 6, 7 }.SequenceEqual(e)),
                Arg.Is <int>(76));
        }