public void Transfer() { var twoAccounts = Context(delegate { var from = new Account("A"); var to = new Account("B"); from.Deposit(100); return new { from, to }; }); Given(twoAccounts) .When(c => c.from.Transfer(25, c.to)) .Then(c => c.from.Balance == 75) .And(c => c.to.Balance == 25); }
static void Main(string[] args) { /** * Alle Teile des APIs, die einen angemeldeten Benutzer erfordern, werden auf die Account-Klasse zurückgreifen. * Sitzungsverwaltung erfolgt hier. */ Account nutzer = new Account(userName); // Der erstellte Benutzer wird eingeloggt: nutzer.login(password); // Als Beweis für einen erfolgreichen Login fragen wir unseren Sitzungsstatus bei Proxer an. Der Parameter true // erzwingt hier eine Anfrage an Proxer. Im Normalfall ist diese überflüssig, da sich der Sitzungsstatus nur selten // ändert. Console.WriteLine("Der Benutzer ist angemeldet? --> " + nutzer.isLoggedIn()); // Am Ende können wir die Sitzung des Nutzers auch wieder beenden, dies ist normalerweise überflüssig, da Sitzungen nach // 60 Minuten ablaufen. Allerdings ist ein explizites Abmelden nie eine schlechte Idee, also bleibt hier die Möglichkeit. nutzer.logout(); if (!nutzer.updateNotifications()) Console.WriteLine("Ungelesene Nachrichten verfügbar!"); if (nutzer.notifications.news > 0) Console.WriteLine("Neue News verfügbar: " + nutzer.notifications.news); /* libProxer unterstützt die Nachrichten von Proxer über die News-Klasse. Darin enthalten ist die Funktion getNews(), die eine Liste der Artikel zurückliefert. Diese ist implementiert als "Lazy-Load", lädt also die Artikel erst, wenn sie angefragt werden (in 15 Artikel Blöcken). */ // Nachrichtenliste erhalten News proxerNews = new News(); var nachrichten = proxerNews.getNews(); // Wir werden nur die ersten zehn Nachrichten verwenden, ein Iterieren durch die Liste aller Nachrichten mit foreach-Schleife ist // möglich, aber nicht empfohlen. (Wie weit gehen die Proxer-Nachrichten zurück, die abrufbar sind? Keine Ahnung...) nachrichten = nachrichten.Take(10); foreach (Article article in nachrichten) { Console.WriteLine(article.author + " schreibt: " + article.title); } Console.ReadKey(); }
public void Transfer(int amount, Account account) { Balance -= amount; account.Deposit(amount); }