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

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

re #215

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