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

Line 
1using System;
2using System.Web.Mvc;
3using adMoto.Payments.Core;
4using adMoto.Payments.Core.Data;
5using adMoto.Payments.Core.Interfaces;
6using adMoto.Payments.Test.Fakes;
7using adMoto.Payments.Web.Controllers;
8using adMoto.Payments.Web.Models;
9using NUnit.Framework;
10
11namespace adMoto.Payments.Test.Controllers
12{
13    [TestFixture]
14    public class PlatnosciControllerTests
15    {
16        private readonly ITranslateManager _translateManager = new FakeTranslation();
17        private const string MERCHANT_NUMBER = "123";
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;
22        private readonly TestDataHelper _testDataHelper = new TestDataHelper();
23               
24        //[Test]
25        //[Category("Unit")]
26        //public void Status_Action_Saves_Correct_Transaction()
27        //{ 
28        //    //Arrange
29        //    var repository = new Repository<PlatnosciEcard>(new FakeDataContext());
30        //    var platnosci = _testDataHelper.CreateNewPayment(_orderNumber, false, DateTime.Now, 12345);
31        //    repository.Insert(platnosci);
32        //    repository.SubmitChanges();
33               
34        //    IRepository<PotwierdzeniaEcard> rep = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
35           
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);           
44           
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();
49
50        //    //Assert
51        //    Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(MERCHANT_NUMBER));
52
53        //    //Act
54        //    var paymentAfterUpdate = repository.FindOne(_orderNumber);
55        //    System.Diagnostics.Debug.WriteLine("Status musi byc 'true'. Jest " + paymentAfterUpdate.Status);
56
57        //    //Assert
58        //    Assert.That(paymentAfterUpdate.Status, Is.EqualTo(true));           
59        //}
60
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());
67        //    var platnosci = _testDataHelper.CreateNewPayment(_orderNumber, false, DateTime.Now, 12345);
68        //    repPayment.Insert(platnosci);
69        //    repPayment.SubmitChanges();
70        //    IRepository<PotwierdzeniaEcard> repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
71         
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);
80
81        //    //Act
82        //    controller.Status();           
83        //    var potwierdzeniaEcard = repConfirm.Find(o => o.ORDERNUMBER == _orderNumber).SingleOrDefault();
84           
85        //    //Assert
86        //    Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(MERCHANT_NUMBER));
87           
88        //    //Act
89        //    var paymentAfterUpdate = repPayment.FindOne(_orderNumber);
90        //    System.Diagnostics.Debug.WriteLine("Status musi byc 'false'. Jest " + paymentAfterUpdate.Status);
91
92        //    //Assert
93        //    Assert.That(paymentAfterUpdate.Status, Is.EqualTo(false));
94        //}
95       
96        [Test]
97        [Category("Unit")]
98        public void Update_Status_Payment_Is_Update_When_Currentstate_Is_CODE_OK()
99        {
100            //Arrange
101            IRepository<PlatnosciEcard> repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
102            PlatnosciEcard platnosc = _testDataHelper.CreateNewPayment(_orderNumber, false, _data, 1);
103            repPayment.Insert(platnosc);
104
105            //Act
106            var controller = new PlatnoscController(null, repPayment, null, _translateManager);
107            controller.UpdateStatus(_orderNumber, CODE_OK);
108
109            var paymentAfterUpdate = repPayment.FindOne(_orderNumber);
110
111            //Assert
112            System.Diagnostics.Debug.WriteLine("Status musi byc 'true'. Jest " + paymentAfterUpdate.Status);
113            Assert.That(paymentAfterUpdate.Status, Is.EqualTo(true));
114        }
115
116        [Test]
117        [Category("Unit")]
118        public void Update_Status_Payment_Is_Not_Update_When_Currentstate_Is_CODE_BAD()
119        {
120            //Arrange
121            IRepository<PlatnosciEcard> repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
122            var platnosc = _testDataHelper.CreateNewPayment(_orderNumber, false, _data, 1);
123            repPayment.Insert(platnosc);
124
125            var controller = new PlatnoscController(null, repPayment, null, _translateManager);
126           
127            //Act
128            controller.UpdateStatus(_orderNumber, CODE_BAD);
129            var paymentAfterUpdate = repPayment.FindOne(i => i.ORDERNUMBER == _orderNumber);
130
131            //Assert
132            System.Diagnostics.Debug.WriteLine("Status musi byc 'false'. Jest " + paymentAfterUpdate.Status);
133            Assert.That(paymentAfterUpdate.Status, Is.EqualTo(false));
134        }
135       
136        [Test]
137        [Category("Unit")]
138        public void Show_Action_Returns_Error_View_When_Passing_Incorrect_User_Identity()
139        {
140            //Arrange
141            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
142            var platnosc = _testDataHelper.CreateInvoice(123, "nip1", "", 0, 0);
143            repVPayment.Insert(platnosc);
144
145            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
146            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip2");
147           
148            //Act
149            var result = controller.Show("123","pl") as ViewResult;
150            var error = (ErrorViewData)result.ViewData.Model;
151
152            //Assert
153            Assert.That(error.Error, Is.EqualTo("weryfikacja"));
154            Assert.That(result.ViewName, Is.EqualTo("Error1"));
155        }
156
157        [Test]
158        [Category("Unit")]
159        public void Show_Action_Returns_Error_View_When_Payment_Is_Not_Found()
160        {
161            //Arrange
162            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
163            var platnosc = _testDataHelper.CreateInvoice(123, "nip2", "", 0, 0);
164            repVPayment.Insert(platnosc);
165
166            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
167            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip2");
168
169            //Act
170            var result = controller.Show("1234", "pl") as ViewResult;
171            var error = (ErrorViewData)result.ViewData.Model;
172
173
174            //Assert
175            Assert.That(error.Error, Is.EqualTo("brakdanych"));
176            Assert.That(result.ViewName, Is.EqualTo("Error1"));
177        }
178
179        [Test]
180        [Category("Unit")]
181        public void Show_Action_Returns_Paid_View_When_Payment_Is_Paid()
182        {
183            //Arrange
184            //Tworzymy takie dane aby platnosc o danym id byla juz zaplacona
185            var repVPayment = new Repository<Invoice>(new FakeDataContext());
186            var invoice = _testDataHelper.CreateInvoice(123, "nip1", "aaa", 0, 0);
187            repVPayment.Insert(invoice);
188            repVPayment.SubmitChanges();
189
190            var repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
191            var confirm = _testDataHelper.CreateConfirm(CODE_OK, 123456);
192            repConfirm.Insert(confirm);
193            repConfirm.SubmitChanges();
194
195            var controller = new PlatnoscController(repVPayment, null, repConfirm, _translateManager);
196            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip1");
197
198            //Act
199            var result = controller.Show("123", "pl") as ViewResult;
200            var view = (InvoiceDetailsViewData)result.ViewData.Model;
201
202            //Assert
203            Assert.That(result.ViewName, Is.EqualTo("Paid"));
204            Assert.That(view.Info, Is.EqualTo("zaplacono"));
205        }
206
207        [Test]
208        [Category("Unit")]
209        public void Show_Action_Returns_View_For_Payment_When_Payment_is_Outstanding()
210        {
211            //Arrange
212            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
213            var platnosc = _testDataHelper.CreateInvoice(123, "nip1", "numer", 200, 0);
214            repVPayment.Insert(platnosc);
215
216            var repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
217            var confirm = _testDataHelper.CreateConfirm(CODE_OK, 1);
218            repConfirm.Insert(confirm);
219            repConfirm.SubmitChanges();
220
221            var controller = new PlatnoscController(repVPayment, null, repConfirm, _translateManager);
222            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip1");
223
224            //Act
225            var result = controller.Show("123", "pl") as ViewResult;                     
226            var view = (InvoiceDetailsViewData)result.ViewData.Model;
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);
229           
230            //Assert
231            Assert.That(view.Invoice.Brutto, Is.EqualTo(200));
232            Assert.That(view.Invoice.Faktura_Numer, Is.EqualTo("numer"));           
233        }
234
235        [Test]
236        [Category("Unit")]
237        public void AfterPay_Show_Action_Returns_Error_When_Name_Is_Null()
238        {
239            //Arrange
240            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
241            var platnosc = _testDataHelper.CreateInvoice(123, "nip1", "numer", 200, 0);
242            repVPayment.Insert(platnosc);
243
244            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
245            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip1");
246           
247            Payer payer = _testDataHelper.CreatePayer(123, "", "test");  //Brak imienia
248
249            //Act
250            controller.Show(payer, "pl");
251
252            //Assert
253            Assert.That(controller.ModelState.IsValid, Is.False);
254        }
255
256        [Test]
257        [Category("Unit")]
258        public void AfterPay_Show_Action_Returns_Error_When_Surname_Is_Null()
259        {
260            //Arrange
261            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
262            var platnosc = _testDataHelper.CreateInvoice(123, "nip1", "numer", 200, 0);
263            repVPayment.Insert(platnosc);
264
265            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
266            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip1");
267
268            Payer payer = _testDataHelper.CreatePayer(123, "test", "");  //Brak nazwiska
269
270            //Act
271            controller.Show(payer, "pl");
272
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
282            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
283            var platnosc = _testDataHelper.CreateInvoice(123, "nip1", "numer", 200, 0);
284            repVPayment.Insert(platnosc);
285
286            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
287            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip1");
288            var name = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
289            var payer = _testDataHelper.CreatePayer(123, name, "test");
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
303            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
304            var platnosc = _testDataHelper.CreateInvoice(123, "nip1", "numer", 200, 0);
305            repVPayment.Insert(platnosc);
306
307            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
308            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip1");
309            var surname = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
310            var payer = _testDataHelper.CreatePayer(123, "test", surname);
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
324            IRepository<Invoice> repVPayment = new Repository<Invoice>(new FakeDataContext());
325            var platnosc = _testDataHelper.CreateInvoice(123, "nip1", "numer", 200, 0);
326            repVPayment.Insert(platnosc);
327
328            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
329            controller.ControllerContext = _testDataHelper.CreateControllerContext("nip1");
330
331            var payer = _testDataHelper.CreatePayer(123, "test", "test");
332 
333            //Act
334            controller.Show(payer, "pl");
335
336            //Assert
337            System.Diagnostics.Debug.WriteLine("Model powinien byc 'true'. Jest " + controller.ModelState.IsValid);
338            Assert.That(controller.ModelState.IsValid, Is.True);
339        }       
340    }
341}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.