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

Wersja 872, 11.9 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{
20    [TestFixture]
[871]21   
[866]22    class PlatnosciControllerTests
23    {
[871]24        private string merchantNumber = "123";
25        private FunkcjePlatnosci _func = new FunkcjePlatnosci();
[866]26
[870]27         /*[TearDown]
28         public void TearDown()
29         {
30             IRepository<PotwierdzeniaEcard> _rep = new Repository<PotwierdzeniaEcard>();
31             var potwierdzeniaEcard = _rep.Find(p => p.MERCHANTNUMBER == merchantNumber);
32
33             foreach (var pe in potwierdzeniaEcard)
34             {
35                 _rep.Delete(pe);
36             }
37         }
38        */
39
[872]40        public vPlatnosciEcard createPayment(int id, string nip, string fak_numer, decimal brutto, byte SystemKsiegowy)
41        {
42
43            vPlatnosciEcard platnosc = new vPlatnosciEcard();
44            platnosc.ID_faktury = id;
45            platnosc.nip = nip;
46            platnosc.Faktura_Numer = fak_numer;
47            platnosc.Brutto = brutto;
48            platnosc.SystemKsiegowyId = SystemKsiegowy;
49
50            return platnosc;
51        }
52        public PlatnosciEcard createNewPayment(int ordernumber, bool status, DateTime data, int id_faktury)
53        {
54            PlatnosciEcard platnosc = new PlatnosciEcard();
55            platnosc.ORDERNUMBER = ordernumber;
56            platnosc.Status = status;
57            platnosc.Status_data = data;
58            platnosc.IDFaktury = id_faktury;
59
60            return platnosc;
61        }
62        public Payer createPayer(int id, string name, string surname)
63        {
64            Payer payer = new Payer();
65            payer.Id_faktury = id;
66            payer.FirstName = name;
67            payer.LastName = surname;
68
69            return payer;
70        }
71        public ControllerContext createControllerContext(string UserIdentity)
72        {
73
74            var mock = new Mock<ControllerContext>();
75            mock.SetupGet(m => m.HttpContext.User.Identity.Name).Returns(UserIdentity);
76            mock.SetupGet(m => m.HttpContext.Request.IsAuthenticated).Returns(true);
77
78            return mock.Object;
79        }
[871]80        [Test]
81        [Category("Unit")]
82        public void Status_Saves_Correct_Transaction()
83        {         
84            var orderNumber = 9999;
85            FakeDataContext fake = new FakeDataContext();
86            var builder = new TestControllerBuilder();
87            var controller = new PlatnoscController(fake);
88            builder.InitializeController(controller);
89            builder.Form.Add("MERCHANTNUMBER", merchantNumber.ToString());
90            builder.Form.Add("AUTHTIME", DateTime.Now.ToString());
91            builder.Form.Add("DATATRANSMISJI", DateTime.Now.ToString());
92            builder.Form.Add("ORDERNUMBER", orderNumber.ToString());
[870]93
[871]94            var result = controller.Status();
95
96            IRepository<PotwierdzeniaEcard> _rep = new Repository<PotwierdzeniaEcard>(fake);           
97            var potwierdzeniaEcard = _rep.Find(p => p.ORDERNUMBER == orderNumber).First();
98            Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(merchantNumber));           
99        }
[870]100        [Test]
[871]101        [Category("Unit")]
102        public void StatusIsUpdated()
103        {
104            FakeDataContext fake = new FakeDataContext();
105            IRepository<PlatnosciEcard> _rep = new Repository<PlatnosciEcard>(fake);
[872]106
[871]107            DateTime data = DateTime.Now;
[872]108            PlatnosciEcard platnosc = createNewPayment(1, true, data, 1);
[871]109            _rep.Insert(platnosc);
110
[872]111            var controller = new PlatnoscController(fake);
[871]112            controller.UpdateStatus(1, "000");   //000 - płatność poprawna
113
114            PlatnosciEcard payment_after_update = new PlatnosciEcard();
115            payment_after_update = _rep.FindOne(i => i.ORDERNUMBER == 1);
116            Assert.That(payment_after_update.Status_data, Is.GreaterThan(data));
117        }
118        [Test]
119        [Category("Unit")]
120        public void StatusIsNotUpdated()
121        {
122            FakeDataContext fake = new FakeDataContext();
123            IRepository<PlatnosciEcard> _rep = new Repository<PlatnosciEcard>(fake);
124
125            DateTime data = DateTime.Now;
126
[872]127            PlatnosciEcard platnosc = createNewPayment(1, true, data, 1);
[871]128            _rep.Insert(platnosc);
129
130            var controller = new PlatnoscController(fake);
131            controller.UpdateStatus(1, "111");   //111 - płatność niepoprawna, ze wzgledu na zly numer karty
132
133            PlatnosciEcard payment_after_update = new PlatnosciEcard();
134            payment_after_update = _rep.FindOne(i => i.ORDERNUMBER == 1);
135            Assert.That(payment_after_update.Status_data, Is.EqualTo(data));
[872]136        }       
[871]137        [Test]
138        [Category("Unit")]
[872]139        public void TestFindInvoiceByNumber()
[866]140        {
[870]141             FakeDataContext fake = new FakeDataContext();
142             IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
[866]143
[870]144             vPlatnosciEcard platnosc = new vPlatnosciEcard();
145             platnosc = _rep.FindInvoiceById(1).SingleOrDefault();
[871]146             Assert.That(platnosc.Faktura_Numer, Is.EqualTo("1"));
[866]147        }
148        [Test]
[871]149        [Category("Unit")]
[872]150        public void TestInsertMethodForPayment()
[866]151        {
[870]152            FakeDataContext fake = new FakeDataContext();
153            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
[866]154
[872]155            vPlatnosciEcard platnosc = createPayment(13, "nipek", "", 0, 0);
[870]156            _rep.Insert(platnosc);
[866]157
[872]158            vPlatnosciEcard pl1 = createPayment(14, "vv", "", 0, 0);
[870]159            _rep.Insert(pl1);
[866]160
[870]161            vPlatnosciEcard pl = _rep.FindInvoiceById(13).SingleOrDefault();
162            Assert.That(pl.nip, Is.EqualTo("nipek"));
[866]163        }
[871]164        [Test]
165        [Category("Unit")]
[872]166        public void ActionShowPayment_IncorrectUserIdentity_ReturnErrorView()
[871]167        {
168            FakeDataContext fake = new FakeDataContext();
169            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
170
[872]171            vPlatnosciEcard platnosc = createPayment(74828, "854956281", "27/ASZ/2009", 0, 0);
[871]172            _rep.Insert(platnosc);
173
174            var controller = new PlatnoscController(fake);
[872]175            controller.ControllerContext = createControllerContext("1");
176            controller.setWeryfikacja("Niepoprawny nip");
[871]177           
[872]178           
[871]179            var result = controller.Show("74828","pl") as ViewResult;
180            var error = (ErrorViewData)result.ViewData.Model;
181           
[872]182            Assert.That(error.error, Is.EqualTo("Niepoprawny nip"));
183            Assert.That(result.ViewName, Is.EqualTo("Error1"));
[871]184        }
185        [Test]
186        [Category("Unit")]
[872]187        public void ActionShowPayment_PaymentNotFound_ReturnErrorView()
[871]188        {
189            FakeDataContext fake = new FakeDataContext();
190            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
191
[872]192            vPlatnosciEcard platnosc = createPayment(74828, "854956281", "27/ASZ/2009", 0,0);
[871]193            _rep.Insert(platnosc);
194
195            var controller = new PlatnoscController(fake);
196
[872]197            controller.ControllerContext = createControllerContext("854956281");
198            controller.setBrakDanych("Platnosc o takim id nie istnieje");
[871]199
[872]200            var result = controller.Show("123", "pl") as ViewResult;
201            var error = (ErrorViewData)result.ViewData.Model;
[871]202
[872]203            Assert.That(error.error, Is.EqualTo("Platnosc o takim id nie istnieje"));
204            Assert.That(result.ViewName, Is.EqualTo("Error1"));
[871]205        }
206        [Test]
207        [Category("Unit")]
[872]208        public void ActionShowPayment_PaymentIsPayed(){
209            //Tworzymy takie dane aby platnosc o danym id byla juz zaplacona
210            FakeDataContext fake = new FakeDataContext(1);
211            var controller = new PlatnoscController(fake);
212
213            controller.ControllerContext = createControllerContext("nip");
214            controller.setZaplacono("Platnosc zostala uregulowana");
215
216            var result = controller.Show("128", "pl") as ViewResult;
217            var error = (ErrorViewData)result.ViewData.Model;
218
219            Assert.That(result.ViewName, Is.EqualTo("Error1"));
220            Assert.That(error.error, Is.EqualTo("Platnosc zostala uregulowana"));
221        }
222        [Test]
223        [Category("Unit")]
224        public void ActionShowPayment_CorrectData_ReturnViewForPayment()
[871]225        {
226            FakeDataContext fake = new FakeDataContext();
227            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
[872]228                                                 
229            vPlatnosciEcard platnosc = createPayment(74828,"854956281","27/ASZ/2009",200,0);
[871]230            _rep.Insert(platnosc);
231
232            var controller = new PlatnoscController(fake);
[872]233            controller.ControllerContext = createControllerContext("854956281");
[871]234
[872]235            var result = controller.Show("74828", "pl") as ViewResult;
236            Assert.IsInstanceOfType(typeof(InvoiceDetailsViewData), result.ViewData.Model);
237           
238            var view = (InvoiceDetailsViewData)result.ViewData.Model;
239            Assert.That(view.vPlatnosciEcard.Brutto, Is.EqualTo(200));
240            Assert.That(view.vPlatnosciEcard.Faktura_Numer, Is.EqualTo("27/ASZ/2009"));           
[871]241        }
242        [Test]
243        [Category("Unit")]
[872]244        public void AfterPay_PaymentIsNotValid()
[871]245        {
246            FakeDataContext fake = new FakeDataContext();
247            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
248
[872]249            vPlatnosciEcard platnosc = createPayment(74828, "854956281", "27/ASZ/2009", 200, 2);
[871]250            _rep.Insert(platnosc);
251
252            var controller = new PlatnoscController(fake);
[872]253            controller.ControllerContext = createControllerContext("854956281");
254           
255            Payer payer = createPayer(74828, "", "test");  //Brak imienia
256            controller.Show(payer, "pl");
[871]257
[872]258            Assert.That(controller.ModelState.IsValid, Is.False);
[871]259        }
260        [Test]
261        [Category("Unit")]
[872]262        public void AfterPay_PaymentIsValid()
[871]263        {
264            FakeDataContext fake = new FakeDataContext();
265            IRepository<vPlatnosciEcard> _rep = new Repository<vPlatnosciEcard>(fake);
266
[872]267            vPlatnosciEcard platnosc = createPayment(74828, "854956281", "27/ASZ/2009", 200, 2);
[871]268            _rep.Insert(platnosc);
269
270            var controller = new PlatnoscController(fake);
[872]271            controller.ControllerContext = createControllerContext("854956281");
[871]272
[872]273            Payer payer = createPayer(74828, "test", "test"); 
274            controller.Show(payer, "pl");
[871]275
[872]276            Assert.That(controller.ModelState.IsValid, Is.True);
277        }       
[871]278        [Test]
279        [Category("UI")]
280        public void checkLoginCorrect()
281        {
282            IE ie = new IE("http://localhost:3646/pl/Account/LogOn");
283            ie.TextField(Find.ByName("numer_faktury")).TypeText("24/HOL/2009");
284            ie.TextField(Find.ByName("nip")).TypeText("501379568");
285            ie.Button(Find.ById("but")).Click();
286            Assert.IsTrue(ie.ContainsText("została uregulowana"));
287        }
288        [Test]
289        [Category("UI")]
290        public void checkErrorLogin()
291        {
292            IE ie = new IE("http://localhost:3646/pl/Account/LogOn");
293            ie.TextField(Find.ByName("numer_faktury")).TypeText("");
294            ie.TextField(Find.ByName("nip")).TypeText("");
295            ie.Button(Find.ById("but")).Click();
296            Assert.IsTrue(ie.ContainsText("Logowanie nie powiodło się"));
297        }
298     
[866]299    }
300}
[870]301
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.