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

Wersja 888, 11.2 KB (wprowadzona przez alina, 16 years temu)

re #215

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 = "payment_deposited";        //transakcja potwierdzona do rozliczenia
26        private string code_Bad = "payment_declined";        //transakcja odrzucona
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        private int test = 1; //oznacza, ze nie ustawiamy tlumaczen poprzez funkcje ustawTlumaczenia()
34                              //w controllerze Platnosci, tylko poprzez funkcje setXXXXXXX()
35
36        private Function _f = new Function();
37        private FunkcjePlatnosci _func = new FunkcjePlatnosci();
38       
39        [Test]
40        [Category("Unit")]
41        public void Status_Saves_Correct_Transaction()
42        {         
43           // //IDataContext fake = new FakeDataContext();
44           // var repository = new Repository<PlatnosciEcard>(new FakeDataContext());
45           // var platnosci = _f.createNewPayment(orderNumber, false, DateTime.Now, 12345); //new PlatnosciEcard();
46           // repository.Insert(platnosci);
47           // repository.SubmitChanges();
48
49
50           // DateTime datka = DateTime.Now;
51           // var builder = new TestControllerBuilder();
52           // var controller = new PlatnoscController(fake,test);
53           // builder.InitializeController(controller);
54           // builder.Form.Add("MERCHANTNUMBER", merchantNumber.ToString());
55           // builder.Form.Add("AUTHTIME", DateTime.Now.ToString());
56           // builder.Form.Add("DATATRANSMISJI", DateTime.Now.ToString());
57           // builder.Form.Add("ORDERNUMBER", orderNumber.ToString());
58           // builder.Form.Add("CURRENTSTATE", code_Ok);           
59           
60           // var result = controller.Status();
61           
62           // IRepository<PotwierdzeniaEcard> _rep = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
63
64
65           // System.Diagnostics.Debug.WriteLine("" + _rep.Count());
66
67           // //var potwierdzeniaEcard = _rep.Find(p => p.ORDERNUMBER == orderNumber).First();
68           //// Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(merchantNumber));
69           // PlatnosciEcard payment_after_update = _rep.FindPaymentByOrdernumber(orderNumber).SingleOrDefault();
70           // System.Diagnostics.Debug.WriteLine(payment_after_update.Status_data + " > " + datka);
71           // Assert.That(payment_after_update.Status, Is.EqualTo(true));
72           
73        }
74        [Test]
75        [Category("Unit")]
76        public void Status_Saves_Correct_Transaction_IncorrectUpdate()
77        {
78            FakeDataContext fake = new FakeDataContext(2);
79            DateTime datka = DateTime.Now;
80            var builder = new TestControllerBuilder();
81            var controller = new PlatnoscController(fake,test);
82            builder.InitializeController(controller);
83            builder.Form.Add("MERCHANTNUMBER", merchantNumber.ToString());
84            builder.Form.Add("AUTHTIME", DateTime.Now.ToString());
85            builder.Form.Add("DATATRANSMISJI", DateTime.Now.ToString());
86            builder.Form.Add("ORDERNUMBER", orderNumber.ToString());
87            builder.Form.Add("CURRENTSTATE", code_Bad);
88
89            var result = controller.Status();
90           
91            IRepository<PotwierdzeniaEcard> _rep = new Repository<PotwierdzeniaEcard>(fake);
92            var potwierdzeniaEcard = _rep.Find(p => p.ORDERNUMBER == orderNumber).First();
93            Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(merchantNumber));
94
95           
96            PlatnosciEcard payment_after_update = _rep.FindPaymentByOrdernumber(orderNumber).SingleOrDefault();
97            System.Diagnostics.Debug.WriteLine(payment_after_update.Status_data + " <= " + datka );
98            Assert.That(payment_after_update.Status_data, Is.LessThanOrEqualTo(datka));
99        }
100        [Test]
101        [Category("Unit")]
102        public void StatusIsUpdated()
103        {
104            FakeDataContext fake = new FakeDataContext(3);
105            IRepository<PlatnosciEcard> _rep = new Repository<PlatnosciEcard>(fake);
106
107            PlatnosciEcard platnosc = _f.createNewPayment(orderNumber, false, data.AddDays(-1), 1);
108            _rep.Insert(platnosc);
109
110            DateTime datka = DateTime.Now;
111            var controller = new PlatnoscController(fake,test);
112            controller.UpdateStatus(orderNumber, code_Ok);   
113           
114            PlatnosciEcard payment_after_update = new PlatnosciEcard();
115            payment_after_update = _rep.FindOne(orderNumber);
116           
117            Assert.That(payment_after_update.Status, Is.EqualTo(true));
118        }
119        [Test]
120        [Category("Unit")]
121        public void StatusIsNotUpdated()
122        {
123            FakeDataContext fake = new FakeDataContext();
124            IRepository<PlatnosciEcard> _rep = new Repository<PlatnosciEcard>(fake);
125
126            PlatnosciEcard platnosc = _f.createNewPayment(orderNumber, true, data, 1);
127            _rep.Insert(platnosc);
128
129            var controller = new PlatnoscController(fake,test);
130            controller.UpdateStatus(orderNumber, code_Bad);   
131
132            PlatnosciEcard payment_after_update = new PlatnosciEcard();
133            payment_after_update = _rep.FindOne(i => i.ORDERNUMBER == orderNumber);
134            Assert.That(payment_after_update.Status_data, Is.EqualTo(data));
135        }       
136        [Test]
137        [Category("Unit")]
138        public void ActionShowPayment_IncorrectUserIdentity_ReturnErrorView()
139        {
140            FakeDataContext fake = new FakeDataContext();
141            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
142
143            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, 0, 0);
144            _rep.Insert(platnosc);
145
146            var controller = new PlatnoscController(fake,test);
147            controller.ControllerContext = _f.createControllerContext(testNip2);
148            controller.setWeryfikacja("Niepoprawny nip");           
149           
150            var result = controller.Show(testIdFaktury.ToString(),"pl") as ViewResult;
151            var error = (ErrorViewData)result.ViewData.Model;
152           
153            Assert.That(error.error, Is.EqualTo("Niepoprawny nip"));
154            Assert.That(result.ViewName, Is.EqualTo("Error1"));
155        }
156        [Test]
157        [Category("Unit")]
158        public void ActionShowPayment_PaymentNotFound_ReturnErrorView()
159        {
160            FakeDataContext fake = new FakeDataContext();
161           // IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
162
163            var controller = new PlatnoscController(fake,test);
164
165            controller.ControllerContext = _f.createControllerContext(testNip1);
166            controller.setBrakDanych("Platnosc o takim id nie istnieje");
167
168            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
169            var error = (ErrorViewData)result.ViewData.Model;
170
171            Assert.That(error.error, Is.EqualTo("Platnosc o takim id nie istnieje"));
172            Assert.That(result.ViewName, Is.EqualTo("Error1"));
173        }
174        [Test]
175        [Category("Unit")]
176        public void ActionShowPayment_PaymentIsPaid(){
177            //Tworzymy takie dane aby platnosc o danym id byla juz zaplacona
178            FakeDataContext fake = new FakeDataContext(1);
179            var controller = new PlatnoscController(fake,test);
180
181            controller.ControllerContext = _f.createControllerContext(testNip1);
182            controller.setZaplacono("Platnosc zostala uregulowana");
183
184            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
185            var view = (InvoiceDetailsViewData)result.ViewData.Model;
186
187            Assert.That(result.ViewName, Is.EqualTo("Paid"));
188            Assert.That(view.info, Is.EqualTo("Platnosc zostala uregulowana"));
189        }
190        [Test]
191        [Category("Unit")]
192        public void ActionShowPayment_CorrectData_ReturnViewForPayment()
193        {
194            FakeDataContext fake = new FakeDataContext();
195            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
196                                                 
197            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 0);
198            _rep.Insert(platnosc);
199
200            var controller = new PlatnoscController(fake,test);
201            controller.ControllerContext = _f.createControllerContext(testNip1);
202
203            var result = controller.Show(testIdFaktury.ToString(), "pl") as ViewResult;
204            Assert.IsInstanceOfType(typeof(InvoiceDetailsViewData), result.ViewData.Model);
205           
206            var view = (InvoiceDetailsViewData)result.ViewData.Model;
207            Assert.That(view.vPlatnosciEcard.Brutto, Is.EqualTo(testBrutto));
208            Assert.That(view.vPlatnosciEcard.Faktura_Numer, Is.EqualTo(testNumerFaktury));           
209        }
210        [Test]
211        [Category("Unit")]
212        public void AfterPay_PaymentIsNotValid()
213        {
214            FakeDataContext fake = new FakeDataContext();
215            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
216
217            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 2);
218            _rep.Insert(platnosc);
219
220            var controller = new PlatnoscController(fake,1);
221            controller.ControllerContext = _f.createControllerContext(testNip1);
222           
223            Payer payer = _f.createPayer(testIdFaktury, "", "test");  //Brak imienia
224            controller.Show(payer, "pl");
225
226            Assert.That(controller.ModelState.IsValid, Is.False);
227        }
228        [Test]
229        [Category("Unit")]
230        public void AfterPay_PaymentIsValid()
231        {
232            FakeDataContext fake = new FakeDataContext();
233            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
234
235            vPlatnosciEcard platnosc = _f.createPayment(testIdFaktury, testNip1, testNumerFaktury, testBrutto, 2);
236            _rep.Insert(platnosc);
237
238            var controller = new PlatnoscController(fake,test);
239            controller.ControllerContext = _f.createControllerContext(testNip1);
240
241            Payer payer = _f.createPayer(testIdFaktury, "test", "test"); 
242            var result = controller.Show(payer, "pl") as ViewResult;
243
244            System.Diagnostics.Debug.WriteLine("AfterPay_PaymentIsValid_Test");
245            Assert.That(controller.ModelState.IsValid, Is.True, "Model powinien byc true");
246        }
247    }
248}
249
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.