public void TangerineObjectFactory_CanBuildStatementData()
        {
            TangerineObjectFactory factory = new TangerineObjectFactory();

            TangerineStatement statement = factory.BuildStatement(statementDateInfo);

            Assert.AreEqual(new DateTime(2015, 10, 31), statement.Timestamp);
            Assert.AreEqual("1234567987", statement.AccountNumber);
        }
        public void TangerineObjectFactory_CanBuildAccountList()
        {
            TangerineObjectFactory factory = new TangerineObjectFactory();

            List<TangerineAccount> accounts = factory
                .BuildAccountList(accountInfo)
                .ToList();

            Assert.AreEqual(accountInfo.Count / 2, accounts.Count);
            Assert.AreEqual("Tangerine Chequing Account", accounts[0].Name);
            Assert.AreEqual("1234567987", accounts[0].Number);
            Assert.AreEqual(0, accounts[0].AccountIndex);
            Assert.AreEqual(3232.61, accounts[0].Balance);
            Assert.AreEqual("Tangerine Chequing Account", accounts[1].Name);
            Assert.AreEqual("1234567987", accounts[1].Number);
            Assert.AreEqual(6.44, accounts[1].Balance);
            Assert.AreEqual(1, accounts[1].AccountIndex);
            Assert.AreEqual("Tax-Free Savings Account", accounts[2].Name);
            Assert.AreEqual("1234567987", accounts[2].Number);
            Assert.AreEqual(2.02, accounts[2].Balance);
            Assert.AreEqual(2, accounts[2].AccountIndex);
        }
Пример #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Craswell.WebRepositories.Tangerine.TangerineClient"/> class.
        /// </summary>
        /// <param name="clientConfiguration">The client configuration.</param>
        /// <param name="objectFactory">The object factory.</param> 
        public TangerineClient(
            HttpClient client,
            IWebRepositoryConfiguration clientConfiguration,
            TangerineObjectFactory objectFactory)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }

            if (clientConfiguration == null)
            {
                throw new ArgumentNullException("clientConfiguration");
            }

            if (objectFactory == null)
            {
                throw new ArgumentNullException("objectFactory");
            }

            this.client = client;
            this.clientConfiguration = clientConfiguration;
            this.objectFactory = objectFactory;
        }
        /// <summary>
        /// Gets the web repositories.
        /// </summary>
        /// <returns>The web repositories.</returns>
        public IList<IConnectedWebRepository> GetWebRepositories()
        {
            List<IConnectedWebRepository> repositoryList = new List<IConnectedWebRepository>();

            using (ISession session = this.dal.OpenSession())
            {
                IList<WebRepositoryData> webRepositories = session
                    .CreateCriteria<WebRepositoryData>()
                    .List<WebRepositoryData>();

                foreach (WebRepositoryData repository in webRepositories)
                {
                    switch (repository.Type)
                    {
                        case WebRepositoryType.Tangerine:
                            ILog tangerineLogger = LogManager.GetLogger("TangerineClientLogger");

                            TangerineConfiguration config = new TangerineConfiguration(
                                repository.Configuration.Address,
                                this.aesTool.DecryptText(repository.Configuration.Username, this.passphrase),
                                this.aesTool.DecryptText(repository.Configuration.Password, this.passphrase),
                                repository.Configuration.SecurityQuestions
                                .ToDictionary(
                                    sq => this.aesTool.DecryptText(sq.Key, this.passphrase),
                                    sq => this.aesTool.DecryptText(sq.Value, this.passphrase)));

                            HttpClient httpClient = new HttpClient(tangerineLogger);

                            TangerineObjectFactory objectFactory = new TangerineObjectFactory();

                            TangerineClient client = new TangerineClient(
                                httpClient,
                                config,
                                objectFactory);

                            IConnectedWebRepository repo = new TangerineRepository(
                                repository.Id,
                                repository.Name,
                                client);

                            repositoryList.Add(repo);
                            break;
                    }
                }
            }

            return repositoryList;
        }