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

Wersja 904, 11.4 KB (wprowadzona przez alina, 16 years temu)

re #215 stworzenie fake'owej klasy do tlumaczen, wprowadzenie zmian w testach (zamiana parametru w konstruktorze kontrolera platnosci)

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