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

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

re #215

Line 
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;
11using Platnosci.Models;
12
13namespace Platnosci.Tests.Web
14{
15    [TestFixture]
16    public class PlatnosciControllerTests
17    {
18        private readonly ITranslateManager _translateManager = new FakeTranslation();
19        private const string MERCHANT_NUMBER = "123";
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();
25               
26        //[Test]
27        //[Category("Unit")]
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();
35               
36        //    IRepository<PotwierdzeniaEcard> rep = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
37           
38        //    var builder = new TestControllerBuilder();
39        //    var controller = new PlatnoscController(null, repository, rep, _translateManager);
40        //    builder.InitializeController(controller);
41        //    builder.QueryString.Add("MERCHANTNUMBER", MERCHANT_NUMBER);
42        //    builder.QueryString.Add("AUTHTIME", DateTime.Now.ToString());
43        //    builder.QueryString.Add("DATATRANSMISJI", DateTime.Now.ToString());
44        //    builder.QueryString.Add("ORDERNUMBER", _orderNumber.ToString());
45        //    builder.QueryString.Add("CURRENTSTATE", CODE_OK);           
46           
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();
51
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));           
61        //}
62
63        //[Test]
64        //[Category("Unit")]
65        //public void Status_Action_Payment_Is_Not_Update_When_Currentstate_Is_CODE_BAD()
66        //{
67        //    //Arrange
68        //    var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
69        //    var platnosci = _function.CreateNewPayment(_orderNumber, false, DateTime.Now, 12345);
70        //    repPayment.Insert(platnosci);
71        //    repPayment.SubmitChanges();
72        //    IRepository<PotwierdzeniaEcard> repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
73         
74        //    var builder = new TestControllerBuilder();
75        //    var controller = new PlatnoscController(null, repPayment, repConfirm, _translateManager);
76        //    builder.InitializeController(controller);
77        //    builder.QueryString.Add("MERCHANTNUMBER", MERCHANT_NUMBER);
78        //    builder.QueryString.Add("AUTHTIME", DateTime.Now.ToString());
79        //    builder.QueryString.Add("DATATRANSMISJI", DateTime.Now.ToString());
80        //    builder.QueryString.Add("ORDERNUMBER", _orderNumber.ToString());
81        //    builder.QueryString.Add("CURRENTSTATE", CODE_BAD);
82
83        //    //Act
84        //    controller.Status();           
85        //    var potwierdzeniaEcard = repConfirm.Find(o => o.ORDERNUMBER == _orderNumber).SingleOrDefault();
86           
87        //    //Assert
88        //    Assert.That(potwierdzeniaEcard.MERCHANTNUMBER, Is.EqualTo(MERCHANT_NUMBER));
89           
90        //    //Act
91        //    var paymentAfterUpdate = repPayment.FindOne(_orderNumber);
92        //    System.Diagnostics.Debug.WriteLine("Status musi byc 'false'. Jest " + paymentAfterUpdate.Status);
93
94        //    //Assert
95        //    Assert.That(paymentAfterUpdate.Status, Is.EqualTo(false));
96        //}
97       
98        [Test]
99        [Category("Unit")]
100        public void Update_Status_Payment_Is_Update_When_Currentstate_Is_CODE_OK()
101        {
102            //Arrange
103            IRepository<PlatnosciEcard> repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
104            PlatnosciEcard platnosc = _function.CreateNewPayment(_orderNumber, false, _data, 1);
105            repPayment.Insert(platnosc);
106
107            //Act
108            var controller = new PlatnoscController(null, repPayment, null, _translateManager);
109            controller.UpdateStatus(_orderNumber, CODE_OK);
110
111            var paymentAfterUpdate = repPayment.FindOne(_orderNumber);
112
113            //Assert
114            System.Diagnostics.Debug.WriteLine("Status musi byc 'true'. Jest " + paymentAfterUpdate.Status);
115            Assert.That(paymentAfterUpdate.Status, Is.EqualTo(true));
116        }
117
118        [Test]
119        [Category("Unit")]
120        public void Update_Status_Payment_Is_Not_Update_When_Currentstate_Is_CODE_BAD()
121        {
122            //Arrange
123            IRepository<PlatnosciEcard> repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
124            var platnosc = _function.CreateNewPayment(_orderNumber, false, _data, 1);
125            repPayment.Insert(platnosc);
126
127            var controller = new PlatnoscController(null, repPayment, null, _translateManager);
128           
129            //Act
130            controller.UpdateStatus(_orderNumber, CODE_BAD);
131            var paymentAfterUpdate = repPayment.FindOne(i => i.ORDERNUMBER == _orderNumber);
132
133            //Assert
134            System.Diagnostics.Debug.WriteLine("Status musi byc 'false'. Jest " + paymentAfterUpdate.Status);
135            Assert.That(paymentAfterUpdate.Status, Is.EqualTo(false));
136        }
137       
138        [Test]
139        [Category("Unit")]
140        public void Show_Action_Returns_Error_View_When_Passing_Incorrect_User_Identity()
141        {
142            //Arrange
143            IRepository<vPlatnosciEcard> repVPayment = new Repository<vPlatnosciEcard>(new FakeDataContext());
144            var platnosc = _function.CreateInvoice(123, "nip1", "", 0, 0);
145            repVPayment.Insert(platnosc);
146
147            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
148            controller.ControllerContext = _function.CreateControllerContext("nip2");
149           
150            //Act
151            var result = controller.Show("123","pl") as ViewResult;
152            var error = (ErrorViewData)result.ViewData.Model;
153
154            //Assert
155            Assert.That(error.Error, Is.EqualTo("weryfikacja"));
156            Assert.That(result.ViewName, Is.EqualTo("Error1"));
157        }
158
159        [Test]
160        [Category("Unit")]
161        public void Show_Action_Returns_Error_View_When_Payment_Is_Not_Found()
162        {
163            //Arrange
164            IRepository<vPlatnosciEcard> repVPayment = new Repository<vPlatnosciEcard>(new FakeDataContext());
165            vPlatnosciEcard platnosc = _function.CreateInvoice(123, "nip2", "", 0, 0);
166            repVPayment.Insert(platnosc);
167
168            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
169            controller.ControllerContext = _function.CreateControllerContext("nip2");
170
171            //Act
172            var result = controller.Show("1234", "pl") as ViewResult;
173            var error = (ErrorViewData)result.ViewData.Model;
174
175
176            //Assert
177            Assert.That(error.Error, Is.EqualTo("brakdanych"));
178            Assert.That(result.ViewName, Is.EqualTo("Error1"));
179        }
180
181        [Test]
182        [Category("Unit")]
183        public void Show_Action_Returns_Paid_View_When_Payment_Is_Paid()
184        {
185            //Arrange
186            //Tworzymy takie dane aby platnosc o danym id byla juz zaplacona
187            var repVPayment = new Repository<vPlatnosciEcard>(new FakeDataContext());
188            var invoice = _function.CreateInvoice(123, "nip1", "aaa", 0, 0);
189            repVPayment.Insert(invoice);
190            repVPayment.SubmitChanges();
191
192            var repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
193            var confirm = _function.CreateConfirm(CODE_OK, 123456);
194            repConfirm.Insert(confirm);
195            repConfirm.SubmitChanges();
196
197            var controller = new PlatnoscController(repVPayment, null, repConfirm, _translateManager);
198            controller.ControllerContext = _function.CreateControllerContext("nip1");
199
200            //Act
201            var result = controller.Show("123", "pl") as ViewResult;
202            var view = (InvoiceDetailsViewData)result.ViewData.Model;
203
204            //Assert
205            Assert.That(result.ViewName, Is.EqualTo("Paid"));
206            Assert.That(view.info, Is.EqualTo("zaplacono"));
207        }
208
209        [Test]
210        [Category("Unit")]
211        public void Show_Action_Returns_View_For_Payment_When_Payment_is_Outstanding()
212        {
213            //Arrange
214            IRepository<vPlatnosciEcard> repVPayment = new Repository<vPlatnosciEcard>(new FakeDataContext());
215            vPlatnosciEcard platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
216            repVPayment.Insert(platnosc);
217
218            var repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
219            var confirm = _function.CreateConfirm(CODE_OK, 1);
220            repConfirm.Insert(confirm);
221            repConfirm.SubmitChanges();
222
223            var controller = new PlatnoscController(repVPayment, null, repConfirm, _translateManager);
224            controller.ControllerContext = _function.CreateControllerContext("nip1");
225
226            //Act
227            var result = controller.Show("123", "pl") as ViewResult;                     
228            var view = (InvoiceDetailsViewData)result.ViewData.Model;
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);
231           
232            //Assert
233            Assert.That(view.vPlatnosciEcard.Brutto, Is.EqualTo(200));
234            Assert.That(view.vPlatnosciEcard.Faktura_Numer, Is.EqualTo("numer"));           
235        }
236
237        [Test]
238        [Category("Unit")]
239        public void AfterPay_Show_Action_Returns_Error_When_Name_Is_Null()
240        {
241            //Arrange
242            IRepository<vPlatnosciEcard> repVPayment = new Repository<vPlatnosciEcard>(new FakeDataContext());
243            vPlatnosciEcard platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
244            repVPayment.Insert(platnosc);
245
246            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
247            controller.ControllerContext = _function.CreateControllerContext("nip1");
248           
249            Payer payer = _function.CreatePayer(123, "", "test");  //Brak imienia
250
251            //Act
252            controller.Show(payer, "pl");
253
254            //Assert
255            Assert.That(controller.ModelState.IsValid, Is.False);
256        }
257
258        [Test]
259        [Category("Unit")]
260        public void AfterPay_Show_Action_Returns_Error_When_Surname_Is_Null()
261        {
262            //Arrange
263            IRepository<vPlatnosciEcard> repVPayment = new Repository<vPlatnosciEcard>(new FakeDataContext());
264            vPlatnosciEcard platnosc = _function.CreateInvoice(123, "nip1", "numer", 200, 0);
265            repVPayment.Insert(platnosc);
266
267            var controller = new PlatnoscController(repVPayment, null, null, _translateManager);
268            controller.ControllerContext = _function.CreateControllerContext("nip1");
269
270            Payer payer = _function.CreatePayer(123, "test", "");  //Brak nazwiska
271
272            //Act
273            controller.Show(payer, "pl");
274
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
339            System.Diagnostics.Debug.WriteLine("Model powinien byc 'true'. Jest " + controller.ModelState.IsValid);
340            Assert.That(controller.ModelState.IsValid, Is.True);
341        }       
342    }
343}
344
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.