public void ReturnFalseGivenValueLengthLessThan12InLength() { string value = "143234"; var result = MpanParser.Split(value); Assert.False(result.Complete, $"{value} should not be mpan"); }
public void ReturnTrueGivenValueLengthGreaterThan12InLength() { string value = "1900033146143"; var result = MpanParser.Split(value); Assert.True(result.Complete, $"{value} should not be mpan"); }
public void ReturnCorrectCheckDigit() { string value = "1900033146143"; var result = MpanParser.Split(value); var expected = "143"; Assert.Equal(expected, result.Result.CheckDigit); }
public void ReturnCorrectResult() { string value = "009998071900033146143"; var result = MpanParser.Split(value); Assert.Equal(result.Result.Mpan, "009998071900033146143"); Assert.Equal(result.Result.SupplyPointRef, "1900033146143"); Assert.Equal(result.Result.ProfileType, "00"); Assert.Equal(result.Result.MeterTimeSwitchCode, "999"); Assert.Equal(result.Result.LLF, "807"); Assert.Equal(result.Result.DistributionId, 19); Assert.Equal(result.Result.UniqueIdentifer, "00033146"); Assert.Equal(result.Result.CheckDigit, "143"); }
public void ReturnCorrectDistributionId(string mpan, int expected) { var result = MpanParser.Split(mpan); Assert.Equal(expected, result.Result.DistributionId); }
static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); Configuration = builder.Build(); Config = new Dictionary <string, object> { { "group.id", Configuration["GROUP_ID"] }, { "bootstrap.servers", Configuration["KAFKA_END_POINT"] } }; // Create the consumer using (var consumer = new Consumer <string, string>(Config, new StringDeserializer(Encoding.UTF8), new StringDeserializer(Encoding.UTF8))) { // Subscribe to the OnMessage event consumer.OnMessage += async(obj, msg) => { Console.WriteLine($"Received Raw Consumption: {msg.Value}"); var data = JsonConvert.DeserializeObject <Consumption>(msg.Value); // Parser mpan to get the MarketParticantId and LLF var mpan = MpanParser.Split(data.Mpan); if (mpan.Complete) { var transformed = new Calculate(data, new GetFactors(MpanHelper.GetMarketParticipantId(mpan.Result.DistributionId), mpan.Result.LLF, data.Date, data.StartTime).Results) .Transform(); Publish(transformed); } }; consumer.OnLog += (obj, e) => { }; // Subscribe to the Kafka topic consumer.Subscribe(new List <string> { Configuration["CONSUMER_TOPIC"] }); // Handle Cancel Keypress var cancelled = false; Console.CancelKeyPress += (_, e) => { e.Cancel = true; // Prevent the process from terminating cancelled = true; }; Console.WriteLine("Ctrl-C to exit"); // Poll for messages while (!cancelled) { consumer.Poll(-1); } } }