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

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

re #215 zmiana nazwy plikow

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