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

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    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.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);           
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.Form.Add("MERCHANTNUMBER", MERCHANT_NUMBER);
78            builder.Form.Add("AUTHTIME", DateTime.Now.ToString());
79            builder.Form.Add("DATATRANSMISJI", DateTime.Now.ToString());
80            builder.Form.Add("ORDERNUMBER", _orderNumber.ToString());
81            builder.Form.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            PlatnosciEcard 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.