root/trunk/eCard/eCardMVC/adMoto.Payments.Test/Controllers/PlatnosciControllerTests.cs @ 982

Wersja 982, 15.2 KB (wprowadzona przez marek, 16 years temu)

re #215 - poprawki w testach + testy na status

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