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

Wersja 896, 11.7 KB (wprowadzona przez alina, 16 years temu)

re #215 zmiana parametrow w konstruktorze PlatnosciController?, dostosowanie testow do zmiany

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