root/trunk/eCard/eCardMVC/adMoto.Payments.Test/Controllers/eCardControllerTests.cs @ 988

Wersja 988, 14.3 KB (wprowadzona przez alina, 16 years temu)

re #215

Line 
1using System;
2using System.Collections.Specialized;
3using System.Linq;
4using adMoto.Payments.Core;
5using adMoto.Payments.Core.Data;
6using adMoto.Payments.Core.Interfaces;
7using adMoto.Payments.Test.Fakes;
8using adMoto.Payments.Web.Controllers;
9using NUnit.Framework;
10using MvcContrib.TestHelper;
11using System.Web.Mvc;
12
13namespace adMoto.Payments.Test.Controllers
14{
15    [TestFixture]
16// ReSharper disable InconsistentNaming
17    public class eCardControllerTests
18// ReSharper restore InconsistentNaming
19    {
20        private readonly TestDataHelper _testDataHelper = new TestDataHelper();
21        private IRepository<PotwierdzeniaEcard> _repConfirm;
22       // private IRepository<PlatnosciEcard> _repPayment;
23        private const string CODE_OK = "payment_deposited";        //transakcja potwierdzona do rozliczenia
24        private const string CODE_BAD = "payment_declined";        //transakcja odrzucona
25       
26        private eCardController CreateController()
27        {
28            _repConfirm = new Repository<PotwierdzeniaEcard>(new FakeDataContext());
29
30            var builder = new TestControllerBuilder();
31            return builder.CreateController<eCardController>(_repConfirm);
32        }
33
34        [Test]
35        [Category("Unit")]
36        public void  Status_Returns_True_When_Passing_Correct_Request_Data()
37        {
38            var controller = CreateController();
39            const string dateFormat = "yyyy-MM-dd HH:mm:ss.fff";
40            var dateTime = DateTime.Now.ToString(dateFormat);
41            var formValues = new NameValueCollection {
42                                                         {"MERCHANTNUMBER", "1"},
43                                                         {"ORDERNUMBER", "2"},
44                                                         {"COMMTYPE", "3"},
45                                                         {"CURRENTSTATE", "4"},
46                                                         {"PREVIOUSSTATE", "5"},
47                                                         {"PAYMENTTYPE", "True"},
48                                                         {"EVENTTYPE", "False"},
49                                                         {"PAYMENTNUMBER", "True"},
50                                                         {"APPROVALCODE", "6"},
51                                                         {"VALIDATIONCODE", "7"},
52                                                         {"BIN", "8"},
53                                                         {"AUTHTIME", dateTime},
54                                                         {"TYPE", "9"},
55                                                         {"WITHCVC", "10"}};
56            controller.Request.Form.Add(formValues);
57
58            var result = controller.Status() as ContentResult;
59            Assert.That(result.Content.Contains("OK"));
60
61            var paymentConfirmation = _repConfirm.FindOne(p=>p.ORDERNUMBER == 2);
62            Assert.That(paymentConfirmation.MERCHANTNUMBER, Is.EqualTo("1"));
63            Assert.That(paymentConfirmation.ORDERNUMBER, Is.EqualTo(2));
64            Assert.That(paymentConfirmation.COMMTYPE, Is.EqualTo("3"));
65            Assert.That(paymentConfirmation.CURRENTSTATE, Is.EqualTo("4"));
66            Assert.That(paymentConfirmation.PREVIOUSSTATE, Is.EqualTo("5"));
67            Assert.That(paymentConfirmation.APPROVALCODE, Is.EqualTo("6"));
68            Assert.That(paymentConfirmation.VALIDATIONCODE, Is.EqualTo("7"));
69            Assert.That(paymentConfirmation.BIN, Is.EqualTo("8"));
70            Assert.That(paymentConfirmation.TYPE, Is.EqualTo("9"));
71            Assert.That(paymentConfirmation.WITHCVC, Is.EqualTo("10"));
72            Assert.That(paymentConfirmation.PAYMENTTYPE, Is.True);
73            Assert.That(paymentConfirmation.EVENTTYPE, Is.False);
74            Assert.That(paymentConfirmation.PAYMENTNUMBER, Is.True);
75            Assert.That(paymentConfirmation.AUTHTIME.Value.ToString(dateFormat), Is.EqualTo(dateTime));
76        }
77
78        [Test]
79        [Category("Unit")]
80        public void Status_Returns_False_And_Throws_FormatException_When_Passing_OrderNumber_In_Wrong_Format()
81        {
82            var controller = CreateController();
83            var formValues = new NameValueCollection {
84                                                         {"MERCHANTNUMBER", "1"},
85                                                         {"ORDERNUMBER", "sgfgsfg"},
86                                                         {"COMMTYPE", "3"},
87                                                         {"CURRENTSTATE", "4"},
88                                                         {"PREVIOUSSTATE", "5"},
89                                                         {"PAYMENTTYPE", "True"},
90                                                         {"EVENTTYPE", "False"},
91                                                         {"PAYMENTNUMBER", "True"},
92                                                         {"APPROVALCODE", "6"},
93                                                         {"VALIDATIONCODE", "7"},
94                                                         {"BIN", "8"},
95                                                         {"AUTHTIME", DateTime.Now.ToString()},
96                                                         {"TYPE", "9"},
97                                                         {"WITHCVC", "10"}};
98            controller.Request.Form.Add(formValues);
99
100            var result = controller.Status() as ContentResult;
101
102            Assert.That(_repConfirm.Count(), Is.EqualTo(0));
103            Assert.That(result.Content.Contains("FALSE"));
104            Assert.That(result.Content.Contains("FormatException"));
105        }
106
107        [Test]
108        [Category("Unit")]
109        public void Status_Returns_False_And_Throws_FormatException_When_Passing_PaymentType_In_Wrong_Format()
110        {
111            var controller = CreateController();
112            var formValues = new NameValueCollection {
113                                                         {"MERCHANTNUMBER", "1"},
114                                                         {"ORDERNUMBER", "sgfgsfg"},
115                                                         {"COMMTYPE", "3"},
116                                                         {"CURRENTSTATE", "4"},
117                                                         {"PREVIOUSSTATE", "5"},
118                                                         {"PAYMENTTYPE", "32hvhsvhv"},
119                                                         {"EVENTTYPE", "False"},
120                                                         {"PAYMENTNUMBER", "True"},
121                                                         {"APPROVALCODE", "6"},
122                                                         {"VALIDATIONCODE", "7"},
123                                                         {"BIN", "8"},
124                                                         {"AUTHTIME", DateTime.Now.ToString()},
125                                                         {"TYPE", "9"},
126                                                         {"WITHCVC", "10"}};
127            controller.Request.Form.Add(formValues);
128            var result = controller.Status() as ContentResult;
129
130            Assert.That(_repConfirm.Count(), Is.EqualTo(0));
131            Assert.That(result.Content.Contains("FALSE"));
132            Assert.That(result.Content.Contains("FormatException"));
133        }
134
135        [Test]
136        [Category("Unit")]
137        public void Status_Returns_False_And_Throws_FormatException_When_Passing_EventType_In_Wrong_Format()
138        {
139            var controller = CreateController();
140            var formValues = new NameValueCollection {
141                                                         {"MERCHANTNUMBER", "1"},
142                                                         {"ORDERNUMBER", "sgfgsfg"},
143                                                         {"COMMTYPE", "3"},
144                                                         {"CURRENTSTATE", "4"},
145                                                         {"PREVIOUSSTATE", "5"},
146                                                         {"PAYMENTTYPE", "True"},
147                                                         {"EVENTTYPE", "32hvhsvhv"},
148                                                         {"PAYMENTNUMBER", "True"},
149                                                         {"APPROVALCODE", "6"},
150                                                         {"VALIDATIONCODE", "7"},
151                                                         {"BIN", "8"},
152                                                         {"AUTHTIME", DateTime.Now.ToString()},
153                                                         {"TYPE", "9"},
154                                                         {"WITHCVC", "10"}};
155            controller.Request.Form.Add(formValues);
156           
157            var result = controller.Status() as ContentResult;
158
159            Assert.That(_repConfirm.Count(), Is.EqualTo(0));
160            Assert.That(result.Content.Contains("FALSE"));
161            Assert.That(result.Content.Contains("FormatException"));
162        }
163
164        [Test]
165        [Category("Unit")]
166        public void Status_Returns_False_And_Throws_OverflowException_When_Passing_OrderNumer_Greater_Than_Integer()
167        {
168            var controller = CreateController();
169            var formValues = new NameValueCollection {
170                                                         {"MERCHANTNUMBER", "1"},
171                                                         {"ORDERNUMBER", "1231111111111111111"},
172                                                         {"COMMTYPE", "3"},
173                                                         {"CURRENTSTATE", "4"},
174                                                         {"PREVIOUSSTATE", "5"},
175                                                         {"PAYMENTTYPE", "32hvhsvhv"},
176                                                         {"EVENTTYPE", "False"},
177                                                         {"PAYMENTNUMBER", "True"},
178                                                         {"APPROVALCODE", "6"},
179                                                         {"VALIDATIONCODE", "7"},
180                                                         {"BIN", "8"},
181                                                         {"AUTHTIME", DateTime.Now.ToString()},
182                                                         {"TYPE", "9"},
183                                                         {"WITHCVC", "10"}};
184            controller.Request.Form.Add(formValues);
185
186            var result = controller.Status() as ContentResult;
187
188            Assert.That(_repConfirm.Count(), Is.EqualTo(0));
189            Assert.That(result.Content.Contains("FALSE"), "Response should contain FALSE");
190            Assert.That(result.Content.Contains("OverflowException"), "Response should contain OverflowException");
191        }
192
193        [Test]
194        [Category("Unit")]
195        public void Status_Returns_False_And_Throws_SqlException_When_Passing_ValidationCode_Longer_Than_Three_Characters()
196        {
197            var controller = CreateController();
198            var formValues = new NameValueCollection {
199                                                         {"MERCHANTNUMBER", "1"},
200                                                         {"ORDERNUMBER", "12"},
201                                                         {"COMMTYPE", "3"},
202                                                         {"CURRENTSTATE", "4"},
203                                                         {"PREVIOUSSTATE", "5"},
204                                                         {"PAYMENTTYPE", "True"},
205                                                         {"EVENTTYPE", "False"},
206                                                         {"PAYMENTNUMBER", "True"},
207                                                         {"APPROVALCODE", "6"},
208                                                         {"VALIDATIONCODE", "76666"},
209                                                         {"BIN", "8"},
210                                                         {"AUTHTIME", DateTime.Now.ToString()},
211                                                         {"TYPE", "9"},
212                                                         {"WITHCVC", "10"}};
213            controller.Request.Form.Add(formValues);
214
215            var result = controller.Status() as ContentResult;
216
217            System.Diagnostics.Debug.WriteLine(result.Content);
218            Assert.That(_repConfirm.Count(), Is.EqualTo(0), "Should not have any items");
219            Assert.That(result.Content.Contains("FALSE"), "Response should contain FALSE");
220            Assert.That(result.Content.Contains("ArgumentException"), "Response should contain SqlException");
221        }
222
223        /*[Test]
224        [Category("Unit")]
225        public void Status_Action_Payment_Is_Not_Update_When_Currentstate_Is_CODE_BAD()
226        { 
227            //Arrange
228            _repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
229            var payment = _testDataHelper.CreateNewPayment(2, false, DateTime.Now, 12345);
230            _repPayment.Insert(payment);
231            _repPayment.SubmitChanges();
232
233            var controller = CreateController();
234            var valueCollection = new NameValueCollection {
235                                                         {"MERCHANTNUMBER", "1"},
236                                                         {"ORDERNUMBER", "2"},
237                                                         {"AUTHTIME", DateTime.Now.ToString()},
238                                                         {"CURRENTSTATE", CODE_BAD}};
239            controller.Request.Form.Add(valueCollection);
240
241            //Act
242            controller.Status();           
243            var confirm = _repConfirm.Find(o => o.ORDERNUMBER == 2).SingleOrDefault();
244
245            //Assert
246            Assert.That(confirm.MERCHANTNUMBER, Is.EqualTo("1"));
247
248            //Act
249            var paymentAfterUpdate = _repPayment.FindOne(2);   
250            System.Diagnostics.Debug.WriteLine("Status musi byc 'false'. Jest " + paymentAfterUpdate.Status);
251
252            //Assert
253            Assert.That(paymentAfterUpdate.Status, Is.EqualTo(true));           
254        }*/
255
256       }
257}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.