{"id":2928,"date":"2017-05-22T23:13:29","date_gmt":"2017-05-23T04:13:29","guid":{"rendered":"https:\/\/rpchurchill.com\/wordpress\/?p=2928"},"modified":"2023-05-22T23:17:27","modified_gmt":"2023-05-23T04:17:27","slug":"fredfredfred","status":"publish","type":"post","link":"https:\/\/rpchurchill.com\/wordpress\/posts\/2017\/05\/22\/fredfredfred\/","title":{"rendered":"fredfredfred"},"content":{"rendered":"<p>Example code:<\/p>\n<pre class=\"toolbar-overlay:false wrap:false height-set:true lang:default decode:true \">\r\npackage main.com.bankapp;\r\n\r\n\/**\r\n * Created by rpchurchill on 9\/3\/2015.\r\n *\/\r\n\r\npublic class bankAccountClass {\r\n    \/\/HashSet<Object> accountList;\r\n    String firstName, lastName;\r\n    double balance;\r\n    private EmailNotifier emailNotifier;\r\n    private daoBankAcctDatabase bankDB;\r\n\r\n    public bankAccountClass() {\r\n        setBalance(0.0);\r\n        setFirstName(\"\");\r\n        setLastName(\"\");\r\n    }\r\n\r\n    public bankAccountClass(String first, String last, double initbal) {\r\n        setFirstName(first);\r\n        setLastName(last);\r\n        setBalance(initbal);\r\n    }\r\n\r\n    public bankAccountClass(String first, String last, double initbal, EmailNotifier emailNotify) {\r\n        setFirstName(first);\r\n        setLastName(last);\r\n        setBalance(initbal);\r\n        emailNotifier = emailNotify;\r\n    }\r\n\r\n    public bankAccountClass(String first, String last, double initbal, daoBankAcctDatabase acctDB) {\r\n        setFirstName(first);\r\n        setLastName(last);\r\n        setBalance(initbal);\r\n        bankDB = acctDB;\r\n    }\r\n\r\n    public String getFirstName() {\r\n        return firstName;\r\n    }\r\n\r\n    public void setFirstName(String firstName) {\r\n        this.firstName = firstName;\r\n    }\r\n\r\n    public void setLastName(String lastName) {\r\n        this.lastName = lastName;\r\n    }\r\n\r\n    public void setBalance(double balance) {\r\n        this.balance = balance;\r\n    }\r\n\r\n    public String getLastName() {\r\n        return lastName;\r\n    }\r\n\r\n    public double getBalance() {\r\n        return balance;\r\n    }\r\n\r\n    public void deposit(double depamount) {\r\n        setBalance(getBalance() + depamount);\r\n    }\r\n\r\n    \/\/TODO figure out hoow to throw and test for excepptions\r\n    public void withdrawal(double wdamount) {  \/\/throws acctOverdraftException {\r\n        if (wdamount > getBalance()) {\r\n            \/\/    throw new acctOverdraftException()\r\n            emailNotifier.sendMessage(\"fred\", \"barney\", \"wilma\", \"betty\");\r\n        }\r\n        else\r\n            deposit(-wdamount);\r\n    }\r\n\r\n    public double sumDeposits(int days) {\r\n        double[] deposits;\r\n        double sum = 0.0;\r\n\r\n        deposits = bankDB.getDepositsFromDatabase(days);\r\n        for (double d : deposits) {\r\n            sum += d;\r\n        }\r\n        return sum;\r\n    }\r\n}\r\n<\/pre>\n<p>Example tests for above:<\/p>\n<pre class=\"toolbar-overlay:false wrap:false height-set:true lang:default decode:true \">\r\npackage test.unit.com.bankapp;\r\n\r\nimport junit.framework.Assert;\r\nimport main.com.bankapp.EmailNotifier;\r\nimport main.com.bankapp.bankAccountClass;\r\nimport main.com.bankapp.daoBankAcctDatabase;\r\nimport org.junit.Test;\r\n\r\nimport static org.mockito.Mockito.*;\r\n\r\n\/**\r\n * Created by rpchurchill on 9\/3\/2015.\r\n *\/\r\npublic class bankAccountClassTest {\r\n\r\n    @Test  \/\/does account exist\r\n    public void acctExists() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",0.0);\r\n        Assert.assertNotNull(account);\r\n        Assert.assertEquals(0.0, account.getBalance(), 0.00000001);\r\n        Assert.assertEquals(\"Fred\", account.getFirstName());\r\n        Assert.assertEquals(\"Flintstone\",account.getLastName());\r\n    }\r\n\r\n    @Test\r\n    public void acctDepositSimple() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",0.0);\r\n        account.deposit(100.0);\r\n        Assert.assertEquals(account.getBalance(), 100.0, 0.00000001);\r\n    }\r\n\r\n    @Test\r\n    public void acctDepositCents() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",0.0);\r\n        account.deposit(43.42);\r\n        Assert.assertEquals(account.getBalance(), 43.42, 0.00000001);\r\n    }\r\n\r\n    @Test\r\n    public void acctDepositModifyExisting() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",0.0);\r\n        account.deposit(250.24);\r\n        account.deposit(100.0);\r\n        Assert.assertEquals(account.getBalance(), 350.24, 0.00000001);\r\n    }\r\n\r\n    @Test\r\n    public void acctDepositModifyExisting1() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",100.0);\r\n        account.deposit(25);\r\n        Assert.assertEquals(account.getBalance(), 125.0, 0.00000001);\r\n        account = new bankAccountClass(\"Fred\",\"Flintstone\",23.42);\r\n        account.deposit(100);\r\n        Assert.assertEquals(account.getBalance(), 123.42, 0.00000001);\r\n        account = new bankAccountClass(\"Fred\",\"Flintstone\",12.41);\r\n        account.deposit(55.00);\r\n        Assert.assertEquals(account.getBalance(), 67.41, 0.00000001);\r\n        account = new bankAccountClass(\"Fred\",\"Flintstone\",67.89);\r\n        account.deposit(10.25);\r\n        Assert.assertEquals(account.getBalance(), 78.14, 0.00000001);\r\n    }\r\n\r\n    @Test\r\n    public void acctDepositModifyMultiple() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",0.0);\r\n        account.deposit(45.45);\r\n        account.deposit(50.00);\r\n        account.deposit(12.73);\r\n        Assert.assertEquals(account.getBalance(), 108.18, 0.00000001);\r\n    }\r\n\r\n    @Test\r\n    public void acctWithdrawal() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",100.0);\r\n        \/\/try {\r\n            account.withdrawal(50.00);\r\n        \/\/}\r\n        \/\/catch (acctOverdraftException e) {}\r\n        Assert.assertEquals(account.getBalance(), 50.0, 0.00000001);\r\n    }\r\n\r\n    @Test\r\n    public void acctWithdrawalMultiple() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",45.45);\r\n        \/\/try {\r\n            account.withdrawal(25.00);\r\n        \/\/}\r\n        \/\/catch (acctOverdraftException e) {}\r\n        account.deposit(50.00);\r\n        \/\/try {\r\n            account.withdrawal(10.25);\r\n        \/\/}\r\n        \/\/catch (acctOverdraftException e) {}\r\n        account.deposit(12.73);\r\n        Assert.assertEquals(account.getBalance(), 72.93, 0.00000001);\r\n    }\r\n\r\n    \/*\r\n    @Test \/\/(expected = acctOverdraftException.class)\r\n    public void acctWithdrawalOverdraft() {\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",25.00);\r\n        \/\/try {\r\n            account.withdrawal(50.00);\r\n        \/\/}\r\n        \/\/catch (acctOverdraftException e) {}\r\n    }  *\/\r\n\r\n    @Test\r\n    public void acctEmailSentOnOverdraft() {\r\n        EmailNotifier mockEmailNotifier = mock(EmailNotifier.class);\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",25.00,mockEmailNotifier);\r\n        account.withdrawal(50.00);\r\n        verify(mockEmailNotifier).sendMessage(\"fred\", \"barney\", \"wilma\", \"betty\");\r\n        Assert.assertEquals(account.getBalance(), 25.00, 0.0000001);\r\n    }\r\n\r\n    @Test\r\n    public void acctDepositsFromDatabase() {\r\n        daoBankAcctDatabase mockDB = mock(daoBankAcctDatabase.class);\r\n        \/\/List<Double> deposits = new ArrayList<Double>();\r\n        \/\/deposits.add(11.12);\r\n        \/\/deposits.add(22.23);\r\n        \/\/deposits.add(33.34);\r\n        double [] deposits = new double[3];\r\n        deposits[0] = 11.12;\r\n        deposits[1] = 22.23;\r\n        deposits[2] = 33.34;\r\n        doReturn(deposits).when(mockDB).getDepositsFromDatabase(30);\r\n        bankAccountClass account = new bankAccountClass(\"Fred\",\"Flintstone\",0.00,mockDB);\r\n        \/\/verify(mockDB.getDepositsFromDatabase(30));\r\n        Assert.assertEquals(account.sumDeposits(30),66.69,0.0000001);\r\n    }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Example code: package main.com.bankapp; \/** * Created by rpchurchill on 9\/3\/2015. *\/ public class bankAccountClass { \/\/HashSet accountList; String firstName, lastName; double balance; private EmailNotifier emailNotifier; private daoBankAcctDatabase bankDB; public bankAccountClass() { setBalance(0.0); setFirstName(&#8220;&#8221;); setLastName(&#8220;&#8221;); } public bankAccountClass(String first, String &hellip; <a href=\"https:\/\/rpchurchill.com\/wordpress\/posts\/2017\/05\/22\/fredfredfred\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[260],"_links":{"self":[{"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/posts\/2928"}],"collection":[{"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2928"}],"version-history":[{"count":1,"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/posts\/2928\/revisions"}],"predecessor-version":[{"id":2929,"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/posts\/2928\/revisions\/2929"}],"wp:attachment":[{"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpchurchill.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}