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

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...

Line 
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;
13using WatiN.Core;
14using System.Threading;
15using Platnosci.Models;
16using Moq;
17
18namespace Platnosci.Tests.Web
19{
20    [TestFixture]   
21    class PlatnosciControllerTests
22    {
23        private string merchantNumber = "123";
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;
33
34        private Function _f = new Function();
35        private FunkcjePlatnosci _func = new FunkcjePlatnosci();
36       
37        [Test]
38        [Category("Unit")]
39        public void Status_Saves_Correct_Transaction()
40        {         
41            FakeDataContext fake = new FakeDataContext(2);
42            DateTime datka = DateTime.Now;
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());
50            builder.Form.Add("VALIDATIONCODE", code_Ok);           
51           
52            var result = controller.Status();
53
54            IRepository<PotwierdzeniaEcard> _rep = new Repository<PotwierdzeniaEcard>(fake);           
55            var potwierdzeniaEcard = _rep.Find(p => p.ORDERNUMBER == orderNumber).First();
56            Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(merchantNumber));
57            PlatnosciEcard payment_after_update = _rep.FindPaymentByOrdernumber(orderNumber).SingleOrDefault();
58            System.Diagnostics.Debug.WriteLine(payment_after_update.Status_data + " > " + datka);
59            Assert.That(payment_after_update.Status_data, Is.GreaterThan(datka));
60           
61        }
62        [Test]
63        [Category("Unit")]
64        public void Status_Saves_Correct_Transaction_IncorrectUpdate()
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();
84            System.Diagnostics.Debug.WriteLine(payment_after_update.Status_data + " <= " + datka );
85            Assert.That(payment_after_update.Status_data, Is.LessThanOrEqualTo(datka));
86        }
87        [Test]
88        [Category("Unit")]
89        public void StatusIsUpdated()
90        {
91            FakeDataContext fake = new FakeDataContext();
92            IRepository<PlatnosciEcard> _rep = new Repository<PlatnosciEcard>(fake);
93
94            PlatnosciEcard platnosc = _f.createNewPayment(orderNumber, true, data, 1);
95            _rep.Insert(platnosc);
96
97            var controller = new PlatnoscController(fake);
98            controller.UpdateStatus(orderNumber, code_Ok);   
99           
100            PlatnosciEcard payment_after_update = new PlatnosciEcard();
101            payment_after_update = _rep.FindOne(i => i.ORDERNUMBER == orderNumber);
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
111            PlatnosciEcard platnosc = _f.createNewPayment(orderNumber, true, data, 1);
112            _rep.Insert(platnosc);
113
114            var controller = new PlatnoscController(fake);
115            controller.UpdateStatus(orderNumber, code_Bad);   
116
117            PlatnosciEcard payment_after_update = new PlatnosciEcard();
118            payment_after_update = _rep.FindOne(i => i.ORDERNUMBER == orderNumber);
119            Assert.That(payment_after_update.Status_data, Is.EqualTo(data));
120        }       
121        [Test]
122        [Category("Unit")]
123        public void ActionShowPayment_IncorrectUserIdentity_ReturnErrorView()
124        {
125            FakeDataContext fake = new FakeDataContext();
126            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
127
128            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, 0, 0);
129            _rep.Insert(platnosc);
130
131            var controller = new PlatnoscController(fake);
132            controller.ControllerContext = _f.createControllerContext(testNip2);
133            controller.setWeryfikacja("Niepoprawny nip");           
134           
135            var result = controller.Show(testIdFaktury.ToString(),"pl") as ViewResult;
136            var error = (ErrorViewData)result.ViewData.Model;
137           
138            Assert.That(error.error, Is.EqualTo("Niepoprawny nip"));
139            Assert.That(result.ViewName, Is.EqualTo("Error1"));
140        }
141        [Test]
142        [Category("Unit")]
143        public void ActionShowPayment_PaymentNotFound_ReturnErrorView()
144        {
145            FakeDataContext fake = new FakeDataContext();
146            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
147
148            var controller = new PlatnoscController(fake);
149
150            controller.ControllerContext = _f.createControllerContext(testNip1);
151            controller.setBrakDanych("Platnosc o takim id nie istnieje");
152
153            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
154            var error = (ErrorViewData)result.ViewData.Model;
155
156            Assert.That(error.error, Is.EqualTo("Platnosc o takim id nie istnieje"));
157            Assert.That(result.ViewName, Is.EqualTo("Error1"));
158        }
159        [Test]
160        [Category("Unit")]
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
166            controller.ControllerContext = _f.createControllerContext(testNip1);
167            controller.setZaplacono("Platnosc zostala uregulowana");
168
169            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
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()
178        {
179            FakeDataContext fake = new FakeDataContext();
180            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
181                                                 
182            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 0);
183            _rep.Insert(platnosc);
184
185            var controller = new PlatnoscController(fake);
186            controller.ControllerContext = _f.createControllerContext(testNip1);
187
188            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
189            Assert.IsInstanceOfType(typeof(InvoiceDetailsViewData), result.ViewData.Model);
190           
191            var view = (InvoiceDetailsViewData)result.ViewData.Model;
192            Assert.That(view.vPlatnosciEcard.Brutto, Is.EqualTo(testBrutto));
193            Assert.That(view.vPlatnosciEcard.Faktura_Numer, Is.EqualTo(testNumerFaktury));           
194        }
195        [Test]
196        [Category("Unit")]
197        public void AfterPay_PaymentIsNotValid()
198        {
199            FakeDataContext fake = new FakeDataContext();
200            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
201
202            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 2);
203            _rep.Insert(platnosc);
204
205            var controller = new PlatnoscController(fake);
206            controller.ControllerContext = _f.createControllerContext(testNip1);
207           
208            Payer payer = _f.createPayer(testIdFaktury, "", "test");  //Brak imienia
209            controller.Show(payer, "pl");
210
211            Assert.That(controller.ModelState.IsValid, Is.False);
212        }
213        [Test]
214        [Category("Unit")]
215        public void AfterPay_PaymentIsValid()
216        {
217            FakeDataContext fake = new FakeDataContext();
218            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
219
220            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 2);
221            _rep.Insert(platnosc);
222
223            var controller = new PlatnoscController(fake);
224            controller.ControllerContext = _f.createControllerContext(testNip1);
225
226            Payer payer = _f.createPayer(testIdFaktury, "test", "test"); 
227            var result = controller.Show(payer, "pl") as ViewResult;
228
229            System.Diagnostics.Debug.WriteLine("AfterPay_PaymentIsValid_Test");
230            Assert.That(controller.ModelState.IsValid, Is.True, "Model powinien byc true");
231        }
232    }
233}
234
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.