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

Wersja 970, 14.9 KB (wprowadzona przez marek, 16 years temu)

re #215 - dodanie nowego projektu z lepsza nazwa i typem projektu

RevLine 
[866]1using System;
2using System.Web.Mvc;
[970]3using adMoto.Payments.Core;
4using adMoto.Payments.Core.Data;
5using adMoto.Payments.Core.Interfaces;
[866]6using NUnit.Framework;
7using Platnosci.Controllers;
[871]8using Platnosci.Models;
[866]9
10namespace Platnosci.Tests.Web
11{
[969]12    [TestFixture]
13    public class PlatnosciControllerTests
[866]14    {
[931]15        private readonly ITranslateManager _translateManager = new FakeTranslation();
[933]16        private const string MERCHANT_NUMBER = "123";
[931]17        private readonly int _orderNumber = 9999;
18        private const string CODE_OK = "payment_deposited";        //transakcja potwierdzona do rozliczenia
19        private const string CODE_BAD = "payment_declined";        //transakcja odrzucona
20        private readonly DateTime _data = DateTime.Now;
21        private readonly Function _function = new Function();
[896]22               
[969]23        //[Test]
24        //[Category("Unit")]
25        //public void Status_Action_Saves_Correct_Transaction()
26        //{ 
27        //    //Arrange
28        //    var repository = new Repository<PlatnosciEcard>(new FakeDataContext());
29        //    var platnosci = _function.CreateNewPayment(_orderNumber, false, DateTime.Now, 12345);
30        //    repository.Insert(platnosci);
31        //    repository.SubmitChanges();
[904]32               
[969]33        //    IRepository<PotwierdzeniaEcard> rep = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
[877]34           
[969]35        //    var builder = new TestControllerBuilder();
36        //    var controller = new PlatnoscController(null, repository, rep, _translateManager);
37        //    builder.InitializeController(controller);
38        //    builder.QueryString.Add("MERCHANTNUMBER", MERCHANT_NUMBER);
39        //    builder.QueryString.Add("AUTHTIME", DateTime.Now.ToString());
40        //    builder.QueryString.Add("DATATRANSMISJI", DateTime.Now.ToString());
41        //    builder.QueryString.Add("ORDERNUMBER", _orderNumber.ToString());
42        //    builder.QueryString.Add("CURRENTSTATE", CODE_OK);           
[888]43           
[969]44        //    //Act
45        //    controller.Status();           
46        //    System.Diagnostics.Debug.WriteLine("rep:" + rep.Count() + " repPl: " + repository.Count() );
47        //    var potwierdzeniaEcard = rep.Find(o => o.ORDERNUMBER == _orderNumber).SingleOrDefault();
[871]48
[969]49        //    //Assert
50        //    Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(MERCHANT_NUMBER));
[963]51
[969]52        //    //Act
53        //    var paymentAfterUpdate = repository.FindOne(_orderNumber);
54        //    System.Diagnostics.Debug.WriteLine("Status musi byc 'true'. Jest " + paymentAfterUpdate.Status);
[963]55
[969]56        //    //Assert
57        //    Assert.That(paymentAfterUpdate.Status, Is.EqualTo(true));           
58        //}
[963]59
[969]60        //[Test]
61        //[Category("Unit")]
62        //public void Status_Action_Payment_Is_Not_Update_When_Currentstate_Is_CODE_BAD()
63        //{
64        //    //Arrange
65        //    var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
66        //    var platnosci = _function.CreateNewPayment(_orderNumber, false, DateTime.Now, 12345);
67        //    repPayment.Insert(platnosci);
68        //    repPayment.SubmitChanges();
69        //    IRepository<PotwierdzeniaEcard> repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
[896]70         
[969]71        //    var builder = new TestControllerBuilder();
72        //    var controller = new PlatnoscController(null, repPayment, repConfirm, _translateManager);
73        //    builder.InitializeController(controller);
74        //    builder.QueryString.Add("MERCHANTNUMBER", MERCHANT_NUMBER);
75        //    builder.QueryString.Add("AUTHTIME", DateTime.Now.ToString());
76        //    builder.QueryString.Add("DATATRANSMISJI", DateTime.Now.ToString());
77        //    builder.QueryString.Add("ORDERNUMBER", _orderNumber.ToString());
78        //    builder.QueryString.Add("CURRENTSTATE", CODE_BAD);
[877]79
[969]80        //    //Act
81        //    controller.Status();           
82        //    var potwierdzeniaEcard = repConfirm.Find(o => o.ORDERNUMBER == _orderNumber).SingleOrDefault();
[877]83           
[969]84        //    //Assert
85        //    Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(MERCHANT_NUMBER));
[888]86           
[969]87        //    //Act
88        //    var paymentAfterUpdate = repPayment.FindOne(_orderNumber);
89        //    System.Diagnostics.Debug.WriteLine("Status musi byc 'false'. Jest " + paymentAfterUpdate.Status);
[963]90
[969]91        //    //Assert
92        //    Assert.That(paymentAfterUpdate.Status, Is.EqualTo(false));
93        //}
[896]94       
[877]95        [Test]
96        [Category("Unit")]
[963]97        public void Update_Status_Payment_Is_Update_When_Currentstate_Is_CODE_OK()
[871]98        {
[963]99            //Arrange
[896]100            IRepository<PlatnosciEcard> repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
[931]101            PlatnosciEcard platnosc = _function.CreateNewPayment(_orderNumber, false, _data, 1);
[896]102            repPayment.Insert(platnosc);
[872]103
[963]104            //Act
[931]105            var controller = new PlatnoscController(null, repPayment, null, _translateManager);
106            controller.UpdateStatus(_orderNumber, CODE_OK);
107
108            var paymentAfterUpdate = repPayment.FindOne(_orderNumber);
[963]109
110            //Assert
[931]111            System.Diagnostics.Debug.WriteLine("Status musi byc 'true'. Jest " + paymentAfterUpdate.Status);
112            Assert.That(paymentAfterUpdate.Status, Is.EqualTo(true));
[871]113        }
[963]114
[871]115        [Test]
116        [Category("Unit")]
[963]117        public void Update_Status_Payment_Is_Not_Update_When_Currentstate_Is_CODE_BAD()
[871]118        {
[963]119            //Arrange
[896]120            IRepository<PlatnosciEcard> repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
[969]121            var platnosc = _function.CreateNewPayment(_orderNumber, false, _data, 1);
[896]122            repPayment.Insert(platnosc);
[871]123
[931]124            var controller = new PlatnoscController(null, repPayment, null, _translateManager);
[963]125           
126            //Act
[931]127            controller.UpdateStatus(_orderNumber, CODE_BAD);
[963]128            var paymentAfterUpdate = repPayment.FindOne(i => i.ORDERNUMBER == _orderNumber);
[871]129
[963]130            //Assert
[931]131            System.Diagnostics.Debug.WriteLine("Status musi byc 'false'. Jest " + paymentAfterUpdate.Status);
132            Assert.That(paymentAfterUpdate.Status, Is.EqualTo(false));
[963]133        }
134       
[871]135        [Test]
136        [Category("Unit")]
[963]137        public void Show_Action_Returns_Error_View_When_Passing_Incorrect_User_Identity()
[871]138        {
[963]139            //Arrange
[970]140            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
[931]141            var platnosc = _function.CreateInvoice(123, "nip1", "", 0, 0);
[896]142            repVPayment.Insert(platnosc);
[871]143
[931]144            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
145            controller.ControllerContext = _function.CreateControllerContext("nip2");
[872]146           
[963]147            //Act
[896]148            var result = controller.Show("123","pl") as ViewResult;
[871]149            var error = (ErrorViewData)result.ViewData.Model;
[896]150
[963]151            //Assert
[933]152            Assert.That(error.Error, Is.EqualTo("weryfikacja"));
[872]153            Assert.That(result.ViewName, Is.EqualTo("Error1"));
[871]154        }
[963]155
[871]156        [Test]
157        [Category("Unit")]
[963]158        public void Show_Action_Returns_Error_View_When_Payment_Is_Not_Found()
[871]159        {
[963]160            //Arrange
[970]161            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
162            var platnosc = _function.CreateInvoice(123, "nip2", "", 0, 0);
[896]163            repVPayment.Insert(platnosc);
[871]164
[931]165            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
[952]166            controller.ControllerContext = _function.CreateControllerContext("nip2");
[871]167
[963]168            //Act
[896]169            var result = controller.Show("1234", "pl") as ViewResult;
[872]170            var error = (ErrorViewData)result.ViewData.Model;
[871]171
[963]172
173            //Assert
[933]174            Assert.That(error.Error, Is.EqualTo("brakdanych"));
[872]175            Assert.That(result.ViewName, Is.EqualTo("Error1"));
[871]176        }
[963]177
[871]178        [Test]
179        [Category("Unit")]
[963]180        public void Show_Action_Returns_Paid_View_When_Payment_Is_Paid()
[896]181        {
[963]182            //Arrange
[872]183            //Tworzymy takie dane aby platnosc o danym id byla juz zaplacona
[970]184            var repVPayment = new Repository<Invoice>(new FakeDataContext());
[931]185            var invoice = _function.CreateInvoice(123, "nip1", "aaa", 0, 0);
[896]186            repVPayment.Insert(invoice);
187            repVPayment.SubmitChanges();
[872]188
[896]189            var repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
[931]190            var confirm = _function.CreateConfirm(CODE_OK, 123456);
[896]191            repConfirm.Insert(confirm);
192            repConfirm.SubmitChanges();
193
[931]194            var controller = new PlatnoscController(repVPayment, null, repConfirm, _translateManager);
195            controller.ControllerContext = _function.CreateControllerContext("nip1");
[872]196
[963]197            //Act
[896]198            var result = controller.Show("123", "pl") as ViewResult;
[888]199            var view = (InvoiceDetailsViewData)result.ViewData.Model;
[872]200
[963]201            //Assert
[888]202            Assert.That(result.ViewName, Is.EqualTo("Paid"));
[904]203            Assert.That(view.info, Is.EqualTo("zaplacono"));
[872]204        }
[963]205
[872]206        [Test]
207        [Category("Unit")]
[963]208        public void Show_Action_Returns_View_For_Payment_When_Payment_is_Outstanding()
[871]209        {
[963]210            //Arrange
[970]211            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
212            var platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
[896]213            repVPayment.Insert(platnosc);
[871]214
[896]215            var repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
[931]216            var confirm = _function.CreateConfirm(CODE_OK, 1);
[896]217            repConfirm.Insert(confirm);
218            repConfirm.SubmitChanges();
[871]219
[931]220            var controller = new PlatnoscController(repVPayment, null, repConfirm, _translateManager);
221            controller.ControllerContext = _function.CreateControllerContext("nip1");
[896]222
[963]223            //Act
224            var result = controller.Show("123", "pl") as ViewResult;                     
[872]225            var view = (InvoiceDetailsViewData)result.ViewData.Model;
[896]226            System.Diagnostics.Debug.WriteLine("Brutto 200: " + view.vPlatnosciEcard.Brutto);
227            System.Diagnostics.Debug.WriteLine("Nr Faktury musi byc 'numer'. Jest " + view.vPlatnosciEcard.Faktura_Numer);
[963]228           
229            //Assert
[896]230            Assert.That(view.vPlatnosciEcard.Brutto, Is.EqualTo(200));
231            Assert.That(view.vPlatnosciEcard.Faktura_Numer, Is.EqualTo("numer"));           
[871]232        }
[963]233
[871]234        [Test]
235        [Category("Unit")]
[963]236        public void AfterPay_Show_Action_Returns_Error_When_Name_Is_Null()
[871]237        {
[963]238            //Arrange
[970]239            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
240            var platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
[896]241            repVPayment.Insert(platnosc);
[871]242
[931]243            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
244            controller.ControllerContext = _function.CreateControllerContext("nip1");
[872]245           
[931]246            Payer payer = _function.CreatePayer(123, "", "test");  //Brak imienia
[963]247
248            //Act
[872]249            controller.Show(payer, "pl");
[963]250
251            //Assert
[872]252            Assert.That(controller.ModelState.IsValid, Is.False);
[871]253        }
[963]254
[871]255        [Test]
256        [Category("Unit")]
[963]257        public void AfterPay_Show_Action_Returns_Error_When_Surname_Is_Null()
[871]258        {
[963]259            //Arrange
[970]260            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
261            var platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
[896]262            repVPayment.Insert(platnosc);
[871]263
[931]264            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
265            controller.ControllerContext = _function.CreateControllerContext("nip1");
[871]266
[963]267            Payer payer = _function.CreatePayer(123, "test", "");  //Brak nazwiska
268
269            //Act
[931]270            controller.Show(payer, "pl");
[871]271
[963]272            //Assert
273            Assert.That(controller.ModelState.IsValid, Is.False);
274        }
275
276        [Test]
277        [Category("Unit")]
278        public void AfterPay_Show_Action_Returns_Error_When_Name_Is_Too_Long()
279        {
280            //Arrange
[970]281            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
282            var platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
[963]283            repVPayment.Insert(platnosc);
284
285            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
286            controller.ControllerContext = _function.CreateControllerContext("nip1");
[970]287            var name = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
288            var payer = _function.CreatePayer(123, name, "test");
[963]289
290            //Act
291            controller.Show(payer, "pl");
292
293            //Assert
294            Assert.That(controller.ModelState.IsValid, Is.False);
295        }
296
297        [Test]
298        [Category("Unit")]
299        public void AfterPay_Show_Action_Returns_Error_When_Surname_Is_Too_Long()
300        {
301            //Arrange
[970]302            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
303            var platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
[963]304            repVPayment.Insert(platnosc);
305
306            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
307            controller.ControllerContext = _function.CreateControllerContext("nip1");
[970]308            var surname = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
309            var payer = _function.CreatePayer(123, "test", surname);
[963]310
311            //Act
312            controller.Show(payer, "pl");
313
314            //Assert
315            Assert.That(controller.ModelState.IsValid, Is.False);
316        }
317
318        [Test]
319        [Category("Unit")]
320        public void AfterPay_Show_Action_Returns_Error_When_Name_And_Surname_Is_Not_Null()
321        {
322            //Arrange
[970]323            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
324            var platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
[963]325            repVPayment.Insert(platnosc);
326
327            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
328            controller.ControllerContext = _function.CreateControllerContext("nip1");
329
330            var payer = _function.CreatePayer(123, "test", "test");
331 
332            //Act
333            controller.Show(payer, "pl");
334
335            //Assert
[896]336            System.Diagnostics.Debug.WriteLine("Model powinien byc 'true'. Jest " + controller.ModelState.IsValid);
337            Assert.That(controller.ModelState.IsValid, Is.True);
[951]338        }       
[866]339    }
340}
[870]341
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.