using System; using adMoto.Payments.Core; using adMoto.Payments.Core.Data; using adMoto.Payments.Test.Fakes; using adMoto.Payments.Web.Models; using NUnit.Framework; namespace adMoto.Payments.Test.Utils { [TestFixture] // ReSharper disable InconsistentNaming public class eCardDataTests // ReSharper restore InconsistentNaming { private readonly TestDataHelper _testDataHelper = new TestDataHelper(); [Test] [Category("Unit")] public void SetHash_Returns_ZlyHash_When_Passing_Invalid_Merchant() { //Arrange var repPayment = new Repository(new FakeDataContext()); var platnosc = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1); repPayment.Insert(platnosc); var ecarddata = new MerchantHelper(repPayment); var merchant = new Merchant{ Payment = platnosc, Id = "171485000", Password = "ashSeth2", }; //Act var result = ecarddata.SetHash(merchant); //Assert Assert.That(result, Is.EqualTo(Merchant.BAD_HASH)); } [Test] [Category("Unit")] public void SetHash_Returns_PaymentErrorInfo_When_Passing_Invalid_Payment() { //Arrange var repPayment = new Repository(new FakeDataContext()); var platnosc = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1); repPayment.Insert(platnosc); var ecarddata = new MerchantHelper(repPayment); var merchant = new Merchant { Payment = new PlatnosciEcard{ ORDERDESCRIPTION = "dd", IDFaktury = 21, Data = DateTime.Now }, Id = "171485000", Password = "ashSeth2", }; //Act var result = ecarddata.SetHash(merchant); //Assert Assert.That(result, Is.EqualTo(Merchant.HASH_ERROR_INFO)); } [Test] [Category("Unit")] public void SetHash_Returns_Correct_Hash_When_Passing_Valid_Data() { //Arrange var repPayment = new Repository(new FakeDataContext()); var platnosc = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1); platnosc.AMOUNT = 229; platnosc.CURRENCY = PaymentsUtils.PLN; repPayment.Insert(platnosc); var ecarddata = new MerchantHelper(repPayment); var merchant = new Merchant { Payment = platnosc, Id = "171485000", Password = "ashSeth2", }; //Act var result = ecarddata.SetHash(merchant); //Assert Assert.That(result.Length, Is.GreaterThan(30)); } [Test] [Category("Unit")] public void SetHash_Returns_Bad_Hash_When_Invoice_Amount_Is_Zero() { //Arrange var repPayment = new Repository(new FakeDataContext()); var platnosc = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1); platnosc.AMOUNT = 0; platnosc.CURRENCY = PaymentsUtils.PLN; repPayment.Insert(platnosc); var ecarddata = new MerchantHelper(repPayment); var merchant = new Merchant { Payment = platnosc, Id = "171485000", Password = "ashSeth2", }; //Act var result = ecarddata.SetHash(merchant); //Assert Assert.That(result, Is.EqualTo(Merchant.BAD_HASH)); } [Test] [Category("Unit")] public void SetHash_Returns_Bad_Hash_When_Password_Is_Wrong() { //Arrange var repPayment = new Repository(new FakeDataContext()); var platnosc = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1); platnosc.AMOUNT = 229; platnosc.CURRENCY = PaymentsUtils.PLN; repPayment.Insert(platnosc); var ecarddata = new MerchantHelper(repPayment); var merchant = new Merchant { Payment = platnosc, Id = "TEST", Password = "test", }; //Act var result = ecarddata.SetHash(merchant); //Assert Assert.That(result, Is.EqualTo(Merchant.BAD_HASH)); } [Test] [Category("Unit")] public void SetHash_Returns_Correct_Hash_When_Payment_Amount_Is_Less_Then_100() { //Arrange var repPayment = new Repository(new FakeDataContext()); var platnosc = _testDataHelper.CreateNewPayment(123, true, DateTime.Now, 1); platnosc.AMOUNT = 11; platnosc.CURRENCY = PaymentsUtils.PLN; repPayment.Insert(platnosc); var ecarddata = new MerchantHelper(repPayment); var merchant = new Merchant { Payment = platnosc, Id = "171485000", Password = "ashSeth2", }; //Act var result = ecarddata.SetHash(merchant); //Assert Assert.That(result.Length, Is.GreaterThan(30)); } [Test] [Category("Unit")] public void Create_Merchant_Data_Returns_Invoice_Correct_Amount_When_Merchant_Is_Valid() { //Arrange const int idFaktury = 12345; const int amountInPln = 5000; const int amountInEur = 1300; var repVPayment = new Repository(new FakeDataContext()); var invoice = _testDataHelper.CreateForeignInvoice(idFaktury, "nip1", "abc/2009", amountInPln, 0, amountInEur, "EUR"); repVPayment.Insert(invoice); var payer = _testDataHelper.CreatePayer(idFaktury, "test", "test"); var repPayment = new Repository(new FakeDataContext()); var eCardData = new MerchantHelper(repPayment); //Act eCardData.CreateMerchantData(invoice, payer, "pl", "ahaah"); var payment = repPayment.FindOne(i => i.IDFaktury == idFaktury); //Assert Assert.That(payment.AMOUNT, Is.EqualTo(amountInEur * 100)); } [Test] [Category("Unit")] public void Create_Merchant_Data_Returns_Bad_Hash_When_Invoice_Amount_Is_Zero() { //Arrange var ecarddata = new MerchantHelper(new Repository(new FakeDataContext())); var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 0, 2); var payer = _testDataHelper.CreatePayer(123, "test", "test"); //Act var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd"); //Assert Assert.That(result.Error, Is.EqualTo("hash")); //dla wartosci amount=0 eCard zwroci hash o wartości "zlyHash" } [Test] [Category("Unit")] public void Create_Merchant_Data_Returns_Error_When_Orderdescription_Is_Not_Valid() { //Arrange var ecarddata = new MerchantHelper(new Repository(new FakeDataContext())); var invoice = _testDataHelper.CreateInvoice(123, "nip", "", 200, 2); var payer = _testDataHelper.CreatePayer(123, "test", "test"); //Act var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd"); //Assert System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid."); Assert.That(result.Error, Is.EqualTo("orderdescription")); } [Test] [Category("Unit")] public void Create_Merchant_Data_Returns_Error_When_Name_Is_Not_Valid() { //Arrange var ecarddata = new MerchantHelper(new Repository(new FakeDataContext())); var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2); var payer = _testDataHelper.CreatePayer(123, "", "test"); //Act var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd"); //Assert System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid."); Assert.That(result.Error, Is.EqualTo("name")); } [Test] [Category("Unit")] public void Create_Merchant_Data_Returns_Error_When_Surname_Is_Not_Valid() { //Arrange var ecarddata = new MerchantHelper(new Repository(new FakeDataContext())); var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2); var payer = _testDataHelper.CreatePayer(123, "test", ""); //Act var result = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd"); //Assert System.Diagnostics.Debug.WriteLine("Error: " + result.Error + " is not valid."); Assert.That(result.Error, Is.EqualTo("surname")); } [Test] [Category("Unit")] public void Create_Merchant_Data_Returns_Valid_Merchnt_When_All_Data_Are_Correct() { //Arrange var ecarddata = new MerchantHelper(new Repository(new FakeDataContext())); var invoice = _testDataHelper.CreateInvoice(123, "nip", "abc/2009", 200, 2); var payer = _testDataHelper.CreatePayer(123, "test", "test"); //Act var result2 = ecarddata.CreateMerchantData(invoice, payer, "PL", "abcd"); //Assert System.Diagnostics.Debug.WriteLine("Wszystkie dane sa poprawne!!"); Assert.That(result2.Error, Is.EqualTo(null)); } [Test] [Category("Unit")] public void Get_Url_Returns_Correct_Ecard_Url() { //Arrange var pl = new PlatnosciEcard {ORDERDESCRIPTION = "abc/2009"}; var m = new Merchant {Payment = pl, Id = "ABCD" }; var eCardData = new MerchantHelper(new Repository(new FakeDataContext())); //Act var result = eCardData.GetUrl(m); //Assert System.Diagnostics.Debug.WriteLine("eCard url:" + result + " " + m); Assert.That(result, Is.Not.EqualTo("")); } } }