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

Wersja 963, 15.0 KB (wprowadzona przez alina, 16 years temu)

re #215 porzadki w testach

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