Index: trunk/eCard/eCardMVC/Platnosci.Tests/Web/PlatnosciControllerTests.cs
===================================================================
--- trunk/eCard/eCardMVC/Platnosci.Tests/Web/PlatnosciControllerTests.cs (revision 933)
+++ trunk/eCard/eCardMVC/Platnosci.Tests/Web/PlatnosciControllerTests.cs (revision 951)
@@ -228,5 +228,5 @@
             System.Diagnostics.Debug.WriteLine("Model powinien byc 'true'. Jest " + controller.ModelState.IsValid);
             Assert.That(controller.ModelState.IsValid, Is.True);
-        }
+        }        
     }
 }
Index: trunk/eCard/eCardMVC/Platnosci.Tests/Web/FakeDataContext.cs
===================================================================
--- trunk/eCard/eCardMVC/Platnosci.Tests/Web/FakeDataContext.cs (revision 930)
+++ trunk/eCard/eCardMVC/Platnosci.Tests/Web/FakeDataContext.cs (revision 951)
@@ -71,5 +71,5 @@
         public int GetOrdernumber(string desc, int? id, DateTime? data)
         {
-            throw new NotImplementedException();
+            return 1111;
         }
     }
Index: trunk/eCard/eCardMVC/Platnosci.Tests/Web/Function.cs
===================================================================
--- trunk/eCard/eCardMVC/Platnosci.Tests/Web/Function.cs (revision 950)
+++ trunk/eCard/eCardMVC/Platnosci.Tests/Web/Function.cs (revision 951)
@@ -16,6 +16,18 @@
             platnosc.Brutto = brutto;
             platnosc.SystemKsiegowyId = systemKsiegowy;
-            //platnosc.waluta_miano
 
+            return platnosc;
+        }
+        public vPlatnosciEcard CreateForeignInvoice(int id, string nip, string invoiceNumber, decimal brutto, byte systemKsiegowy, decimal walutaBrutto, string currency)
+        {
+            var platnosc = new vPlatnosciEcard();
+            platnosc.ID_faktury = id;
+            platnosc.nip = nip;
+            platnosc.Faktura_Numer = invoiceNumber;
+            platnosc.Brutto = brutto;
+            platnosc.waluta_brutto = walutaBrutto;
+            platnosc.waluta_miano = currency;
+            platnosc.SystemKsiegowyId = systemKsiegowy;
+           
             return platnosc;
         }
Index: trunk/eCard/eCardMVC/Platnosci.Tests/Web/MerchantControllerTests.cs
===================================================================
--- trunk/eCard/eCardMVC/Platnosci.Tests/Web/MerchantControllerTests.cs (revision 933)
+++ trunk/eCard/eCardMVC/Platnosci.Tests/Web/MerchantControllerTests.cs (revision 951)
@@ -52,5 +52,209 @@
             Assert.That(result.ViewName, Is.EqualTo("Error1"));
         }
-        
+        [Test]
+        [Category("Unit")]
+        public void CheckCorrectAmount()
+        {
+            var idFaktury = 12345;
+            var amountPL = 5000;
+            var amountEUR = 1300;
+
+            var repVPayment = new Repository<vPlatnosciEcard>(new FakeDataContext());
+            var invoice = _function.CreateForeignInvoice(idFaktury, "nip1", "abc/2009", amountPL, 0, amountEUR, "EUR");
+            repVPayment.Insert(invoice);
+
+            var payer = _function.CreatePayer(idFaktury, "test", "test");
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var eCardData = new eCardData(repPayment);
+            var result = eCardData.CreateMerchantData(invoice, payer, "pl", "ahaah");
+            var payment = repPayment.FindOne(i => i.IDFaktury == idFaktury);
+
+            System.Diagnostics.Debug.WriteLine("Faktura jest w EUR.");
+            System.Diagnostics.Debug.WriteLine("PLN:" + amountPL + "," + " EUR:" + amountEUR);
+            Assert.That(payment.AMOUNT, Is.EqualTo(amountEUR * 100));
+        }
+        [Test]
+        [Category("Unit")]
+        public void CheckeCardUrl()
+        {
+            var m = new Merchant();
+            var pl = new PlatnosciEcard();
+            pl.ORDERDESCRIPTION = "abc/2009";
+            m.Payment = pl;
+            m.Id = "ABCD";
+            
+            var repPayment = new Repository<PlatnosciEcard>(new FakeDataContext());
+            var eCardData = new eCardData(repPayment);
+            var result = eCardData.GetUrl(m);
+            
+            System.Diagnostics.Debug.WriteLine("eCard url:" + result + " " + m);
+            Assert.That(result, Is.Not.EqualTo(""));
+        }
+        [Test]
+        [Category("Unit")]
+        public void PaymentIsNotValid()
+        {
+            var m = new Merchant();
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("payment"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void AmountIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("amount"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void AutodepositIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("autodeposit"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void OrderdescriptionIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.Payment.AUTODEPOSIT = true;
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("orderdescription"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void CurrencyIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.Payment.AUTODEPOSIT = true;
+            m.Payment.ORDERDESCRIPTION = "abc/2009";
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("currency"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void NameIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.Payment.AUTODEPOSIT = true;
+            m.Payment.ORDERDESCRIPTION = "abc/2009";
+            m.Payment.CURRENCY = "test";
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("name"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void SurnameIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.Payment.AUTODEPOSIT = true;
+            m.Payment.ORDERDESCRIPTION = "abc/2009";
+            m.Payment.CURRENCY = "test";
+            m.Payment.NAME = "test";
+
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("surname"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void LanguageIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.Payment.AUTODEPOSIT = true;
+            m.Payment.ORDERDESCRIPTION = "abc/2009";
+            m.Payment.CURRENCY = "test";
+            m.Payment.NAME = "test";
+            m.Payment.SURNAME = "test";
+
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("language"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void OrdernumberIsNotValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.Payment.AUTODEPOSIT = true;
+            m.Payment.ORDERDESCRIPTION = "abc/2009";
+            m.Payment.CURRENCY = "test";
+            m.Payment.NAME = "test";
+            m.Payment.SURNAME = "test";
+            m.Payment.LANGUAGE = "test";
+
+            m.IsValid();
+            var result = m.Error;
+
+            System.Diagnostics.Debug.WriteLine("Error: " + result + " is not valid.");
+            Assert.That(result, Is.EqualTo("ordernumber"));
+        }
+        [Test]
+        [Category("Unit")]
+        public void MerchantDataIsValid()
+        {
+            var m = new Merchant();
+            var p = new PlatnosciEcard();
+            m.Payment = p;
+            m.Payment.AMOUNT = 100;
+            m.Payment.AUTODEPOSIT = true;
+            m.Payment.ORDERDESCRIPTION = "abc/2009";
+            m.Payment.CURRENCY = "test";
+            m.Payment.NAME = "test";
+            m.Payment.SURNAME = "test";
+            m.Payment.LANGUAGE = "test";
+            m.Payment.ORDERNUMBER = 100;
+
+            m.IsValid();
+            var result = m.Error;
+            Assert.That(result,Is.EqualTo(null));
+        }
     }
 }
