コード例 #1
0
ファイル: Startup.cs プロジェクト: andrewchaa/WhereMoneyGoes
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddTransient <IHttpContextAccessor, HttpContextAccessor>();
            services.AddTransient <IStatementParser>(s =>
            {
                IStatementParser parser;

                switch (GetCard(s))
                {
                case Card.Barclaycard:
                    parser = new BarclaycardParser(s.GetService <ILogger <BarclaycardParser> >());
                    break;

                case Card.Hsbc:
                    parser = new HsbcParser(s.GetService <ILogger <HsbcParser> >());
                    break;

                default:
                    parser = new AmazoncardParser(s.GetService <ILogger <AmazoncardParser> >());
                    break;
                }

                return(parser);
            });
            services.AddTransient <IClean>(s =>
            {
                switch (GetCard(s))
                {
                case Card.Barclaycard:
                    return(new BarclaycardCleaner());

                case Card.Hsbc:
                    return(new HsbcCleaner());

                default:
                    return(new AmazoncardCleaner());
                }
            });

            services.AddMvc();
        }
コード例 #2
0
        public void Should_parse_barclaycard_statements()
        {
            // arrange
            var columns = new[]
            {
                "21 Apr 18",
                " Waitrose 834, Clifton8.10 POUND STERLING GREAT BRITAIN ",
                "Visa",
                "MS H LEE",
                "Groceries",
                "",
                "8.10"
            };

            // act
            var parser      = new HsbcParser(new NullLogger <HsbcParser>());
            var transaction = parser.Parse(columns);

            // assert
            Assert.Equal(new DateTime(2018, 4, 21), transaction.Date);
            Assert.Equal("Waitrose 834, Clifton8.10 POUND STERLING GREAT BRITAIN", transaction.Description);
            Assert.Equal(8.10m, transaction.PaidOut);
            Assert.Equal(0m, transaction.PaidIn);
        }