public void KuuluisiHakeaAsiakasTunnisteella() { BonusAsiakas asiakasTietokannasta = asiakasDb.Hae(3); Assert.That(asiakasTietokannasta, Is.Not.Null); Assert.AreEqual(3, asiakasTietokannasta.Id); Assert.AreEqual(0.0, asiakasTietokannasta.Etupisteet); }
/// <summary> /// BonusAsiakas Hae(int asiakasnumero) /// /// Metodi palauttaa tietokannasta (Hashtable) bonusasiakkaan /// käyttäen metodille parametrina annettua asiakkaan tunnusta. /// /// TÄTÄ METODIA EI OLE KÄYTETTY MISSÄÄN /// </summary> /// <param name="asiakasnumero"></param> /// <returns></returns> public override BonusAsiakas Hae(int asiakasnumero) { BonusAsiakas asiakas = (BonusAsiakas)asiakkaat[asiakasnumero]; if (asiakas != null) { asiakas = new BonusAsiakas(asiakasnumero, asiakas.Etupisteet); } return(asiakas); }
public void KuuluisiLaskeaEtupisteetBonusasiakkaalle() { BonusAsiakas asiakas = new BonusAsiakas(); double etupisteet = asiakas.LaskeEtupisteet(75); Assert.AreEqual(1.5, etupisteet); etupisteet = asiakas.LaskeEtupisteet(150); Assert.AreEqual(3.0, etupisteet); etupisteet = asiakas.LaskeEtupisteet(351); Assert.AreEqual(7.0, etupisteet); }
/// <summary> /// List<BonusAsiakas> HaeKaikki() /// /// Metodi palauttaa kaikki bonusasiakkaat tietokannasta (Hashtable) /// listana, joka sisältää Bonusasiakas-luokan olioita. /// /// TÄTÄ METODIA EI OLE KÄYTETTY MISSÄÄN /// </summary> /// <returns></returns> public override List <BonusAsiakas> HaeKaikki() { List <BonusAsiakas> kaikkiAsiakkaat = new List <BonusAsiakas>(); for (int i = 1; i <= asiakkaat.Count; i++) { BonusAsiakas asiakas = (BonusAsiakas)asiakkaat[i]; kaikkiAsiakkaat.Add(new BonusAsiakas(asiakas.Id, asiakas.Etupisteet)); } return(kaikkiAsiakkaat); }
public void KuuluisiKerryttaaEtupisteetBonusasiakkaalle() { BonusAsiakas asiakas = new BonusAsiakas(); Assert.AreEqual(0, asiakas.Etupisteet); asiakas.KerrytaEtupisteita(75); Assert.AreEqual(1.5, asiakas.Etupisteet); asiakas.KerrytaEtupisteita(75); Assert.AreEqual(3.0, asiakas.Etupisteet); asiakas.KerrytaEtupisteita(25); Assert.AreEqual(3.5, asiakas.Etupisteet); }
public void TestienAlustus() { asiakasDb = new InMemoryBonusAsiakasDb(); BonusAsiakas asiakas = new BonusAsiakas(); asiakasDb.Uusi(asiakas); BonusAsiakas asiakas2 = new BonusAsiakas(); asiakasDb.Uusi(asiakas2); BonusAsiakas asiakas3 = new BonusAsiakas(); asiakasDb.Uusi(asiakas3); BonusAsiakas asiakas4 = new BonusAsiakas(); asiakasDb.Uusi(asiakas4); }
void LaskeKokonaishintaJaEtupisteet() { if (BonusAsiakasCheckbox.Checked) { BonusAsiakas bonusAsiakas = new BonusAsiakas(); EtupisteetValue.Text = bonusAsiakas.LaskeEtupisteet(tilaus.LaskeVerollinenKokonaishinta()).ToString(); tilaus.Asiakas = bonusAsiakas; NaytaEtupisteidenElementit(); } else { tilaus.Asiakas = new Asiakas(); PiilotaEtupisteidenElementit(); } LaskeKokonaishintaTilaukselle(); }
/// <summary> /// VastaanotaTilaus(Tilaus tilaus) /// /// Metodi suorittaa toimenpiteitä, joita tehdään ennen ja jälkeen /// tilauksen vahvistamisen. VastaanotaTilaus -metodi koostaa ohjelman /// muiden olioiden toimintoja yhteen. Suoritettavat toimenpiteet ovat /// seuraavat: /// /// 1. Metodi saa tilauksen tiedot sille annetusta parametrista. /// /// 2. Tarkistetaan tiedot virhesyötteiden varalta. Virhetilanteen /// sattuessa tilausta ei vahvisteta ja siitä luodaan virheilmoitus. /// Virheen sattuessa se siepataan virheenkäsittelyllä ja annetaan /// metodia kutsuttavan luokan hoitaa sen käsittely. /// /// 2.1 VIRHE: Tilausrivien määrä on 0 tai alle. /// 2.2 VIRHE: Tilaukseen ei ole määritetty asiakasta. /// 2.3 VIRHE: Tilaukseen ei ole määritetty pöytää. /// 2.4 VIRHE: Valitty pöytä on jo varattu. /// 2.5 VIRHE: Tilaus epäonnistuu muusta kuin yllämainituista syistä. /// /// 3. Vahvistetaan tilaus. /// 4. Luodaan uusi tilaus tietokantaan. /// 5. Merkitään pöytä varatuksi. /// 6. Tarkistetaan onko asiakas bonusasiakas /// 6.1 Jos on bonusasiakas, kerrytetään etupisteitä ja /// tallennetaan bonusasiakkaan tiedot tietokantaan. /// </summary> /// <param name="tilaus"></param> public void VastaanotaTilaus(Tilaus tilaus) { try { if (tilaus.Tilausrivit.Count <= 0) { throw new Exception("Tilaus ei sisällä tilausrivejä."); } if (tilaus.Asiakas == null) { throw new Exception("Tilaus ei sisällä asiakasta."); } if (tilaus.Poyta == null) { throw new Exception("Pöytää ei ole valittu. Tilausta ei voitu vahvistaa."); } Poyta poyta = poytaDb.Hae(tilaus.Poyta.Id); if (poyta.OnkoVarattu()) { throw new Exception("Pöytä on jo varattu. Tilausta ei voitu vahvistaa."); } tilaus.VahvistaTilaus(); tilausDb.Uusi(tilaus); poytaDb.VaraaPoyta(poyta.Id); if (tilaus.Asiakas.GetType() == typeof(BonusAsiakas)) { BonusAsiakas asiakas = (BonusAsiakas)tilaus.Asiakas; asiakas.KerrytaEtupisteita(tilaus.LaskeVerollinenKokonaishinta()); asiakasDb.Uusi(asiakas); } } catch (Exception) { throw; } }
public void KuuluisiOstaaEtupisteillaJaPaivitaaEtupisteidenMaara() { BonusAsiakas asiakas = new BonusAsiakas(1, 245); Assert.AreEqual(0, asiakas.OstaEtupisteilla(120)); Assert.AreEqual(125, asiakas.Etupisteet); Assert.AreEqual(48, asiakas.OstaEtupisteilla(173)); Assert.AreEqual(0, asiakas.Etupisteet); asiakas.KerrytaEtupisteita(75); asiakas.KerrytaEtupisteita(75); asiakas.KerrytaEtupisteita(75); asiakas.KerrytaEtupisteita(75); asiakas.KerrytaEtupisteita(75); asiakas.KerrytaEtupisteita(75); asiakas.KerrytaEtupisteita(50); Assert.AreEqual(10, asiakas.Etupisteet); Assert.AreEqual(33, asiakas.OstaEtupisteilla(43)); Assert.AreEqual(0, asiakas.Etupisteet); }
public void KuuluisiPaivittaaAsiakkaanEtupisteidenMuutokset() { BonusAsiakas asiakasTietokannasta = asiakasDb.Hae(1); asiakasTietokannasta.KerrytaEtupisteita(200); asiakasTietokannasta.KerrytaEtupisteita(142); asiakasTietokannasta.KerrytaEtupisteita(360); Assert.AreEqual(14.04, asiakasTietokannasta.Etupisteet, 0.1); asiakasDb.TallennaMuutokset(asiakasTietokannasta); BonusAsiakas asiakasTietokannasta2 = asiakasDb.Hae(1); Assert.AreEqual(1, asiakasTietokannasta2.Id); Assert.AreEqual(14.04, asiakasTietokannasta2.Etupisteet, 0.1); double maksettavaSumma = asiakasTietokannasta2.OstaEtupisteilla(90); asiakasDb.TallennaMuutokset(asiakasTietokannasta2); BonusAsiakas asiakasTietokannasta3 = asiakasDb.Hae(1); Assert.AreEqual(1, asiakasTietokannasta3.Id); Assert.AreEqual(0, asiakasTietokannasta3.Etupisteet, 0.1); Assert.AreEqual(75.96, maksettavaSumma, 0.1); }
public void KuuluisiLaskeaEtuhintaBonusasiakkaalle() { Asiakas asiakas = new BonusAsiakas(); Assert.AreEqual(28.30, asiakas.LaskeHinta(33.30), 0.01); }
public abstract void Uusi(BonusAsiakas asiakas);
public abstract void TallennaMuutokset(BonusAsiakas asiakas);
/// <summary> /// void Uusi(BonusAsiakas asiakas) /// /// Metodi lisää uuden Bonusasiakkaan tiedot tietokantaan. (hashtable) /// </summary> /// <param name="asiakas"></param> public override void Uusi(BonusAsiakas asiakas) { asiakkaat[seuraavaId] = asiakas; seuraavaId++; }
/// <summary> /// void TallennaMuutokset(BonusAsiakas asiakas) /// /// Metodi tallentaa Bonusasiakkaan tietojen muutokset /// tietokantaan. (hashtable) /// /// TÄTÄ METODIA EI OLE KÄYTETTY MISSÄÄN /// </summary> /// <param name="asiakas"></param> public override void TallennaMuutokset(BonusAsiakas asiakas) { asiakkaat[asiakas.Id] = asiakas; }