root/trunk/eCard/eCardMVC/Platnosci.Tests/Web/PlatnosciControllerTests.cs @ 880

Wersja 880, 10.5 KB (wprowadzona przez alina, 16 years temu)

re #215 modyfikacja akcji Potwierdzenie(do wyswietlenia statusu), dodanie funkcji InitErrorViewData?, zapisywanie plikow z bledami w katalogu Log...

RevLine 
[866]1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Web.Mvc;
6
7using NUnit.Framework;
8using MvcContrib.TestHelper;
9using Platnosci.Controllers;
10
11using Platnosci.Core.Interface;
12using Platnosci.Core.Linq;
[871]13using WatiN.Core;
14using System.Threading;
15using Platnosci.Models;
[872]16using Moq;
[866]17
18namespace Platnosci.Tests.Web
19{
[880]20    [TestFixture]   
[866]21    class PlatnosciControllerTests
22    {
[871]23        private string merchantNumber = "123";
[877]24        private int orderNumber = 9999;
25        private string code_Ok = "000";        //poprawna transakcja
26        private string code_Bad = "111";       //transakcja nieudana - zły numer karty
27        private DateTime data = DateTime.Now;
28        private string testNip1 = "12345";
29        private string testNip2 = "01234";
30        private int testIdFaktury = 1000;
31        private string testNumerFaktury = "abcd";
32        private decimal testBrutto = 200;
[866]33
[877]34        private Function _f = new Function();
35        private FunkcjePlatnosci _func = new FunkcjePlatnosci();
36       
[871]37        [Test]
38        [Category("Unit")]
39        public void Status_Saves_Correct_Transaction()
40        {         
[877]41            FakeDataContext fake = new FakeDataContext(2);
42            DateTime datka = DateTime.Now;
[871]43            var builder = new TestControllerBuilder();
44            var controller = new PlatnoscController(fake);
45            builder.InitializeController(controller);
46            builder.Form.Add("MERCHANTNUMBER", merchantNumber.ToString());
47            builder.Form.Add("AUTHTIME", DateTime.Now.ToString());
48            builder.Form.Add("DATATRANSMISJI", DateTime.Now.ToString());
49            builder.Form.Add("ORDERNUMBER", orderNumber.ToString());
[877]50            builder.Form.Add("VALIDATIONCODE", code_Ok);           
51           
[871]52            var result = controller.Status();
53
54            IRepository<PotwierdzeniaEcard> _rep = new Repository<PotwierdzeniaEcard>(fake);           
55            var potwierdzeniaEcard = _rep.Find(p => p.ORDERNUMBER == orderNumber).First();
[877]56            Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(merchantNumber));
57            PlatnosciEcard payment_after_update = _rep.FindPaymentByOrdernumber(orderNumber).SingleOrDefault();
[880]58            System.Diagnostics.Debug.WriteLine(payment_after_update.Status_data + " > " + datka);
[877]59            Assert.That(payment_after_update.Status_data, Is.GreaterThan(datka));
60           
[871]61        }
[870]62        [Test]
[871]63        [Category("Unit")]
[880]64        public void Status_Saves_Correct_Transaction_IncorrectUpdate()
[877]65        {
66            FakeDataContext fake = new FakeDataContext(2);
67            DateTime datka = DateTime.Now;
68            var builder = new TestControllerBuilder();
69            var controller = new PlatnoscController(fake);
70            builder.InitializeController(controller);
71            builder.Form.Add("MERCHANTNUMBER", merchantNumber.ToString());
72            builder.Form.Add("AUTHTIME", DateTime.Now.ToString());
73            builder.Form.Add("DATATRANSMISJI", DateTime.Now.ToString());
74            builder.Form.Add("ORDERNUMBER", orderNumber.ToString());
75            builder.Form.Add("VALIDATIONCODE", code_Bad);
76
77            var result = controller.Status();
78           
79            IRepository<PotwierdzeniaEcard> _rep = new Repository<PotwierdzeniaEcard>(fake);
80            var potwierdzeniaEcard = _rep.Find(p => p.ORDERNUMBER == orderNumber).First();
81            Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(merchantNumber));
82
83            PlatnosciEcard payment_after_update = _rep.FindPaymentByOrdernumber(orderNumber).SingleOrDefault();
[880]84            System.Diagnostics.Debug.WriteLine(payment_after_update.Status_data + " <= " + datka );
[877]85            Assert.That(payment_after_update.Status_data, Is.LessThanOrEqualTo(datka));
86        }
87        [Test]
88        [Category("Unit")]
[871]89        public void StatusIsUpdated()
90        {
91            FakeDataContext fake = new FakeDataContext();
92            IRepository<PlatnosciEcard> _rep = new Repository<PlatnosciEcard>(fake);
[872]93
[877]94            PlatnosciEcard platnosc = _f.createNewPayment(orderNumber, true, data, 1);
[871]95            _rep.Insert(platnosc);
96
[872]97            var controller = new PlatnoscController(fake);
[877]98            controller.UpdateStatus(orderNumber, code_Ok);   
99           
[871]100            PlatnosciEcard payment_after_update = new PlatnosciEcard();
[877]101            payment_after_update = _rep.FindOne(i => i.ORDERNUMBER == orderNumber);
[871]102            Assert.That(payment_after_update.Status_data, Is.GreaterThan(data));
103        }
104        [Test]
105        [Category("Unit")]
106        public void StatusIsNotUpdated()
107        {
108            FakeDataContext fake = new FakeDataContext();
109            IRepository<PlatnosciEcard> _rep = new Repository<PlatnosciEcard>(fake);
110
[877]111            PlatnosciEcard platnosc = _f.createNewPayment(orderNumber, true, data, 1);
[871]112            _rep.Insert(platnosc);
113
114            var controller = new PlatnoscController(fake);
[877]115            controller.UpdateStatus(orderNumber, code_Bad);   
[871]116
117            PlatnosciEcard payment_after_update = new PlatnosciEcard();
[877]118            payment_after_update = _rep.FindOne(i => i.ORDERNUMBER == orderNumber);
[871]119            Assert.That(payment_after_update.Status_data, Is.EqualTo(data));
[872]120        }       
[871]121        [Test]
122        [Category("Unit")]
[872]123        public void ActionShowPayment_IncorrectUserIdentity_ReturnErrorView()
[871]124        {
125            FakeDataContext fake = new FakeDataContext();
126            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
127
[877]128            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, 0, 0);
[871]129            _rep.Insert(platnosc);
130
131            var controller = new PlatnoscController(fake);
[877]132            controller.ControllerContext = _f.createControllerContext(testNip2);
133            controller.setWeryfikacja("Niepoprawny nip");           
[872]134           
[877]135            var result = controller.Show(testIdFaktury.ToString(),"pl") as ViewResult;
[871]136            var error = (ErrorViewData)result.ViewData.Model;
137           
[872]138            Assert.That(error.error, Is.EqualTo("Niepoprawny nip"));
139            Assert.That(result.ViewName, Is.EqualTo("Error1"));
[871]140        }
141        [Test]
142        [Category("Unit")]
[872]143        public void ActionShowPayment_PaymentNotFound_ReturnErrorView()
[871]144        {
145            FakeDataContext fake = new FakeDataContext();
146            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
147
148            var controller = new PlatnoscController(fake);
149
[877]150            controller.ControllerContext = _f.createControllerContext(testNip1);
[872]151            controller.setBrakDanych("Platnosc o takim id nie istnieje");
[871]152
[877]153            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
[872]154            var error = (ErrorViewData)result.ViewData.Model;
[871]155
[872]156            Assert.That(error.error, Is.EqualTo("Platnosc o takim id nie istnieje"));
157            Assert.That(result.ViewName, Is.EqualTo("Error1"));
[871]158        }
159        [Test]
160        [Category("Unit")]
[872]161        public void ActionShowPayment_PaymentIsPayed(){
162            //Tworzymy takie dane aby platnosc o danym id byla juz zaplacona
163            FakeDataContext fake = new FakeDataContext(1);
164            var controller = new PlatnoscController(fake);
165
[877]166            controller.ControllerContext = _f.createControllerContext(testNip1);
[872]167            controller.setZaplacono("Platnosc zostala uregulowana");
168
[877]169            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
[872]170            var error = (ErrorViewData)result.ViewData.Model;
171
172            Assert.That(result.ViewName, Is.EqualTo("Error1"));
173            Assert.That(error.error, Is.EqualTo("Platnosc zostala uregulowana"));
174        }
175        [Test]
176        [Category("Unit")]
177        public void ActionShowPayment_CorrectData_ReturnViewForPayment()
[871]178        {
179            FakeDataContext fake = new FakeDataContext();
180            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
[872]181                                                 
[877]182            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 0);
[871]183            _rep.Insert(platnosc);
184
185            var controller = new PlatnoscController(fake);
[877]186            controller.ControllerContext = _f.createControllerContext(testNip1);
[871]187
[877]188            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
[872]189            Assert.IsInstanceOfType(typeof(InvoiceDetailsViewData), result.ViewData.Model);
190           
191            var view = (InvoiceDetailsViewData)result.ViewData.Model;
[877]192            Assert.That(view.vPlatnosciEcard.Brutto, Is.EqualTo(testBrutto));
193            Assert.That(view.vPlatnosciEcard.Faktura_Numer, Is.EqualTo(testNumerFaktury));           
[871]194        }
195        [Test]
196        [Category("Unit")]
[872]197        public void AfterPay_PaymentIsNotValid()
[871]198        {
199            FakeDataContext fake = new FakeDataContext();
200            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
201
[877]202            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 2);
[871]203            _rep.Insert(platnosc);
204
205            var controller = new PlatnoscController(fake);
[877]206            controller.ControllerContext = _f.createControllerContext(testNip1);
[872]207           
[877]208            Payer payer = _f.createPayer(testIdFaktury, "", "test");  //Brak imienia
[872]209            controller.Show(payer, "pl");
[871]210
[872]211            Assert.That(controller.ModelState.IsValid, Is.False);
[871]212        }
213        [Test]
214        [Category("Unit")]
[872]215        public void AfterPay_PaymentIsValid()
[871]216        {
217            FakeDataContext fake = new FakeDataContext();
218            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
219
[877]220            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 2);
[871]221            _rep.Insert(platnosc);
222
223            var controller = new PlatnoscController(fake);
[877]224            controller.ControllerContext = _f.createControllerContext(testNip1);
[871]225
[877]226            Payer payer = _f.createPayer(testIdFaktury, "test", "test"); 
227            var result = controller.Show(payer, "pl") as ViewResult;
[871]228
[877]229            System.Diagnostics.Debug.WriteLine("AfterPay_PaymentIsValid_Test");
230            Assert.That(controller.ModelState.IsValid, Is.True, "Model powinien byc true");
[880]231        }
[866]232    }
233}
[870]234
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.