public void AddCoin(ICoin coin)
        {
            var coinJar = GetCoinJar();

            if (coin.CurrencyType != Constants.CurrencyType)
            {
                throw new Exception("CoinJar only accepts only United States Currency!");
            }

            var volume = CurrencyHelper.GetCoinVolume(coin.Amount);

            if (Constants.CoinJarTotalVolume < (coinJar.Sum(o => o.Volume) + volume))
            {
                throw new Exception("CoinJar is full!");
            }

            if (volume == null)
            {
                throw new Exception("Not valid United States Currency amount! " +
                                    "CoinJar only accepts cents, dimes, nickles and quarters!");
            }

            var newCoin = new CoinJar
            {
                Amount = coin.Amount,
                Volume = volume ?? 0
            };

            _dbContext.CoinJar.Add(newCoin);
            _dbContext.SaveChanges();
        }
        public void CoinJar_GetRateTest()
        {
            CoinJar target = new CoinJar();

            target.ApiKey = API_KEY;

            double actual;

            actual = target.GetRate(CurrencyCode.AUD);
            Assert.IsTrue(actual > 0);
        }
        public void CoinJar_GetAddressTest()
        {
            CoinJar target = new CoinJar();

            target.ApiKey = API_KEY;

            string bitcoinAddress = "14aXSCWnahcDiLekAjTYNxuLTt7inxLRXw";

            Models.IAddress actual;
            actual = target.GetAddress(bitcoinAddress);
            Assert.AreEqual(bitcoinAddress, actual.Address);
        }
        public void CoinJar_CreateAddressTest()
        {
            CoinJar target = new CoinJar();

            target.ApiKey = API_KEY;

            string label = "Unit test";

            Models.IAddress actual;
            actual = target.CreateAddress(label);
            Assert.IsFalse(String.IsNullOrEmpty(actual.Address));
            Assert.AreEqual(actual.Label, label);
        }
Exemple #5
0
    public static void Main()
    {
        CoinJar jar = new CoinJar();
        Coin newCoin = null;

        Console.WriteLine("Coin Jar initialized:");
        jar.PrintJarDetail();
        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);
        Console.WriteLine();

        Console.WriteLine("Creating valid coin value of 25c");
        newCoin = jar.DetectValidCoin(25);
        Console.WriteLine("Coin create status: " + (newCoin != null));
        Console.WriteLine();

        Console.WriteLine("Creating invalid coin value of 35c");
        newCoin = jar.DetectValidCoin(35);
        Console.WriteLine("Coin create status: " + (newCoin != null));
        Console.WriteLine();

        Console.WriteLine("Adding testing coins:");
        jar.AddCoin(jar.DetectValidCoin(1));
        jar.AddCoin(jar.DetectValidCoin(1));
        jar.AddCoin(jar.DetectValidCoin(5));
        jar.AddCoin(jar.DetectValidCoin(5));
        jar.AddCoin(jar.DetectValidCoin(10));
        jar.AddCoin(jar.DetectValidCoin(10));
        jar.AddCoin(jar.DetectValidCoin(25));
        jar.AddCoin(jar.DetectValidCoin(25));

        jar.PrintJarDetail();
        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);
        Console.WriteLine();

        Console.WriteLine("Reset Coin Jar:");
        jar.ResetJar();
        jar.PrintJarDetail();
        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);
        Console.WriteLine();

        Console.WriteLine("Testing Coin Jar overflow!");
        for (int i = 0; i <= jar.TotalVolume / 0.027f; i++)
        {
            jar.AddCoin(jar.DetectValidCoin(25));
        }

        Console.Read();
    }
Exemple #6
0
    public static void Main()
    {
        CoinJar jar     = new CoinJar();
        Coin    newCoin = null;

        Console.WriteLine("Coin Jar initialized:");
        jar.PrintJarDetail();
        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);
        Console.WriteLine();

        Console.WriteLine("Creating valid coin value of 25c");
        newCoin = jar.DetectValidCoin(25);
        Console.WriteLine("Coin create status: " + (newCoin != null));
        Console.WriteLine();

        Console.WriteLine("Creating invalid coin value of 35c");
        newCoin = jar.DetectValidCoin(35);
        Console.WriteLine("Coin create status: " + (newCoin != null));
        Console.WriteLine();

        Console.WriteLine("Adding testing coins:");
        jar.AddCoin(jar.DetectValidCoin(1));
        jar.AddCoin(jar.DetectValidCoin(1));
        jar.AddCoin(jar.DetectValidCoin(5));
        jar.AddCoin(jar.DetectValidCoin(5));
        jar.AddCoin(jar.DetectValidCoin(10));
        jar.AddCoin(jar.DetectValidCoin(10));
        jar.AddCoin(jar.DetectValidCoin(25));
        jar.AddCoin(jar.DetectValidCoin(25));

        jar.PrintJarDetail();
        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);
        Console.WriteLine();

        Console.WriteLine("Reset Coin Jar:");
        jar.ResetJar();
        jar.PrintJarDetail();
        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);
        Console.WriteLine();

        Console.WriteLine("Testing Coin Jar overflow!");
        for (int i = 0; i <= jar.TotalVolume / 0.027f; i++)
        {
            jar.AddCoin(jar.DetectValidCoin(25));
        }

        Console.Read();
    }
        public void CoinJar_SendPaymentTest()
        {
            CoinJar target = new CoinJar();

            target.ApiKey = API_KEY;

            String address = "1MoKQiSceQxwFif8Az5tigWS4SskSGpyhR";
            double amount  = 0.0001;
            string label   = "Unit Test";
            double fee     = 0F;
            string actual;

            actual = target.SendPayment(address, amount, label, fee);
            Assert.IsTrue(actual.Contains("PENDING"));
        }
Exemple #8
0
    public static void Main()
    {
        AmericanMint mint    = new AmericanMint();
        CoinJar      jar     = new CoinJar();
        Coin         newCoin = null;

        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);

        newCoin = mint.ManufactureCoinOfValue(25);

        Console.WriteLine("Coin successfully created: " + (newCoin != null));

        newCoin = mint.ManufactureCoinOfValue(30);

        Console.WriteLine("Coin successfully created: " + (newCoin != null));

        jar.AddCoin(mint.ManufactureCoinOfValue(1));
        jar.AddCoin(mint.ManufactureCoinOfValue(1));
        jar.AddCoin(mint.ManufactureCoinOfValue(5));
        jar.AddCoin(mint.ManufactureCoinOfValue(10));
        jar.AddCoin(mint.ManufactureCoinOfValue(10));
        jar.AddCoin(mint.ManufactureCoinOfValue(25));
        jar.AddCoin(mint.ManufactureCoinOfValue(25));
        jar.AddCoin(mint.ManufactureCoinOfValue(25));

        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);

        List <Coin> myCoins = jar.Empty();

        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);

        foreach (Coin coin in myCoins)
        {
            jar.AddCoin(coin);
            Console.WriteLine("Re add coin: " + coin.Value);
        }

        Console.WriteLine("Total Value: " + jar.TotalValue);
        Console.WriteLine("Used Volume: " + jar.UsedVolume);
    }
Exemple #9
0
 public CoinJarController(CoinJar coinJar, Coins coins)
 {
     this.coinJar = coinJar;
 }
Exemple #10
0
        static void Main(string[] args)
        {
            string stringInput;

            //Instatiation
            IStringCollection stringCollection = new StringCollection();
            CoinJar           jar = new CoinJar();

            Console.WriteLine("Strings");
            Console.WriteLine("//=======//");
            Console.WriteLine();
            //Just for demo purpose i will take only 5 strings, otherwise it can be set to any no you want
            stringInput = "Please enter five strings";
            Console.WriteLine(stringInput);
            Console.WriteLine("//==================================================//");
            //Catch input
            for (int i = 0; i <= 4; i++)
            {
                stringCollection.AddString(Console.ReadLine()?.ToString());
            }

            //Display String
            Console.WriteLine("Concatenated list of strings delimited with comma is:");
            Console.WriteLine(stringCollection.ToString());
            Console.WriteLine("....................................................");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("Coinage");
            Console.WriteLine("//======//");
            Console.WriteLine();
            Console.WriteLine("Because there is a lot of countries using '$'other than U.S ....");
            Console.WriteLine("Please enter US coins, first enter coin amount with US currency code e.g '10USD' then enter its volume size");
            Console.WriteLine("//=========================================================================================================//");
            //Just for demo purpose i will take only 5 coins, otherwise it can be set to any no you want or to anything less than Jar Volume
            for (int i = 0; i <= 4; i++)
            {
                try
                {
                    string coinAmount = Console.ReadLine();
                    if (coinAmount != null)
                    {
                        string  coinAmountWithOutCurrencyCode = coinAmount.Remove(coinAmount.Length - 3);
                        decimal amount = decimal.Parse(coinAmountWithOutCurrencyCode);

                        decimal volume = decimal.Parse(Console.ReadLine());
                        Console.WriteLine();
                        Console.WriteLine();

                        Coin coin = new Coin(amount, volume);

                        ICoin enteredCoin = new CoinJar();
                        jar.TryParse(amount.ToString(), ref enteredCoin);
                    }

                    if (jar.Message != null)
                    {
                        Console.WriteLine(jar.Message);
                        Console.ReadKey();
                    }
                    else
                    {
                        //Display TotalAmount of Coins Collected
                        Console.WriteLine("Total Amount is:");
                        Console.WriteLine(jar.TotalAmount);
                        Console.WriteLine("//==================================================//");
                        Console.WriteLine("Now lets empty the jar before it gets full");
                        jar.Reset();
                        Console.WriteLine(jar.TotalAmount);
                        Console.WriteLine("//====================End===========================//");
                        Console.ReadKey();
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("The Coin Amount or Coin Volume entered is in incorrect format, or null");
                }
            }
        }