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); }
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")); }
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); }
public CoinJarController(CoinJar coinJar, Coins coins) { this.coinJar = coinJar; }
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"); } } }