void TransferujPlFormFailureUrlGeneratesCorrectUrl()
        {
            var settings = new TransferujPlSettings()
            {
                SellerId = 123,
                Amount = 99,
                Description = "Demo",
                FailureReturnUrl = new { controller = "Demo", action = "Failure" }
            };

            var htmlHelper = CreateHtmlHelper<object>(new ViewDataDictionary());
            var generatedForm = htmlHelper.TransferujPlForm<object>(settings).ToString();
            Assert.Contains(@"<input name=""pow_url_blad"" type=""hidden"" value=""http://jakis.adres/Demo/Failure"" />", generatedForm);
        }
        void TransferujPlFormDoesRenderBuyerFields(string propertyName)
        {
            var dict = new Dictionary<string, string> {
                {"BuyerAddress","adres"},
                {"BuyerEmail", "email"},
                {"BuyerFirstName","imie"},
                {"BuyerLastName","nazwisko"},
                {"BuyerCity","miasto"},
                {"BuyerPostalCode","kod"},
                {"BuyerPhoneNumber","telefon"},
                {"BuyerCountry","kraj"}
            };
            var settings = new TransferujPlSettings { SellerId = 1234, Amount = 100, Description = "Demo" };
            var property = settings.GetType().GetProperty(propertyName);
            property.SetValue(settings, propertyName);

            var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
            Assert.Contains(string.Format(@"<input name=""{1}"" type=""hidden"" value=""{0}"" />", propertyName, dict[propertyName]), generatedForm);
        }
 void TransferujPlFormDoesRenderFieldThatHasValue()
 {
     var settings = new TransferujPlSettings { SellerId = 456, Amount = 100, Description = "Demo", BuyerEmail = "*****@*****.**" };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.Contains(@"<input name=""email"" type=""hidden"" value=""*****@*****.**"" />", generatedForm);
 }
        void TransferujPlFormThrowsExceptionWhenLockChannelIsSetAndChannelIsNot()
        {
            var settings = new TransferujPlSettings
            {
                SellerId = 123,
                Amount = 99,
                Description = "Demo payment",
                LockChannel = true
            };

            Assert.Throws<ArgumentException>(() => MvcHelper.TransferujPlForm<object>(null, settings));
        }
 void TransferujPlFormThrowsArgumentExceptionWhenValueIsNotSet()
 {
     var settings = new TransferujPlSettings { SellerId = 123 };
     Assert.Throws<ArgumentException>(() => MvcHelper.TransferujPlForm<object>(null, settings));
 }
        void TransferujPlFormThrowsArgumentExceptionWhenSendIntegrityVerificationIsSetAndSellerSecretIsNull()
        {
            var settings = new TransferujPlSettings { SellerId = 123, Amount = 100, Description = "Demo" };
            settings.SendIntegrityVerification = true;

            Assert.Throws<ArgumentException>(() => MvcHelper.TransferujPlForm<object>(null, settings));
        }
 void TransferujPlFormThrowsArgumentExceptionWhenDescriptionIsSetToWhitespace()
 {
     var settings = new TransferujPlSettings { SellerId = 123, Amount = 100, Description = "\t\n \v" };
     Assert.Throws<ArgumentException>(() => MvcHelper.TransferujPlForm<object>(null, settings));
 }
 void TransferujPlFormGeneratesCorrectOnlineTagWhenIsOnlineSetToTrue()
 {
     var settings = new TransferujPlSettings()
     {
         SellerId = 123,
         Amount = 99,
         Description = "Demo payment",
         IsOnline = true
     };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.Contains(@"<input name=""online"" type=""hidden"" value=""1"" />", generatedForm);
 }
 void TransferujPlFormRendersWithMethodPost()
 {
     var settings = new TransferujPlSettings { SellerId = 123, Amount = 100, Description = "Demo" };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.Contains(@"method=""post""", generatedForm);
 }
 void TransferujPlFormRendersWithActionSetCorrectly()
 {
     var settings = new TransferujPlSettings { SellerId = 123, Amount = 100, Description = "Demo" };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.Contains(@"action=""https://secure.transferuj.pl""", generatedForm);
 }
        void TransferujPlFormRendersMd5SumTagWithMd5ValueOfIdValueCrcSecret()
        {
            var settings = new TransferujPlSettings() { SellerId = 123, Amount = 100, Description = "Demo" };
            settings.SellerSecret = "Secret";
            settings.SendIntegrityVerification = true;

            var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
            Assert.Contains(@"<input name=""md5sum"" type=""hidden"" value=""4F2957086AAA1AC69812574393D2A4A0"" />", generatedForm);
        }
 void TransferujPlFormRendersMd5SumTagWhenSendIntegrityVerificationIsSet()
 {
     var settings = new TransferujPlSettings { SellerId = 123, Amount = 100, Description = "Demo" };
     settings.SendIntegrityVerification = true;
     settings.SellerSecret = "secret";
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.Contains(@"<input name=""md5sum""", generatedForm);
 }
 void TransferujPlFormRendersForm()
 {
     var settings = new TransferujPlSettings { SellerId = 123, Amount = 100, Description = "Demo" };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     var formIndex = generatedForm.IndexOf("<form");
     var closingFormIndex = generatedForm.IndexOf("</form>");
     Assert.True(closingFormIndex > formIndex); //closing tag exists and is after opening one
 }
 void TransferujPlFoomRendersWithSellerId()
 {
     var settings = new TransferujPlSettings { SellerId = 324, Amount = 100, Description = "Demo" };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.Contains(@"<input name=""id"" type=""hidden"" value=""324"" />", generatedForm);
 }
        void TransferujPlFormMd5SumTagIsDependentOnValue()
        {
            var settings = new TransferujPlSettings() { SellerId = 123, Amount = 99, Description = "Demo" };
            settings.SellerSecret = "Secret";
            settings.SendIntegrityVerification = true;

            var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
            Assert.DoesNotContain(@"4F2957086AAA1AC69812574393D2A4A0", generatedForm);
        }
 void TransferujPlFormDoesNotRenderFieldThatDoesNotHaveValue()
 {
     var settings = new TransferujPlSettings { SellerId = 333, Amount = 100, Description = "Demo" };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.DoesNotContain(@"<input name=""email"" type=""hidden"" value="""" />", generatedForm);
 }
 void TransferujPlFormGeneratedCorrectZablokujTagWhenLockedIsSet()
 {
     var settings = new TransferujPlSettings()
     {
         SellerId = 123,
         Amount = 99,
         Description = "Demo payment",
         LockChannel = true,
         Channel = 2,
     };
     var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
     Assert.Contains(@"<input name=""zablokuj"" type=""hidden"" value=""1"" />", generatedForm);
 }
        void TransferujPlFormGeneratesCorrectKanalTagWhenChannelIsSet()
        {
            var settings = new TransferujPlSettings()
            {
                SellerId = 123,
                Amount = 99,
                Description = "Demo payment",
                Channel = 8
            };

            var generatedForm = MvcHelper.TransferujPlForm<object>(null, settings).ToString();
            Assert.Contains(@"<input name=""kanal"" type=""hidden"" value=""8"" />", generatedForm);
        }