public void RejectsMismatchedHash() { var values = new NameValueCollection(positiveTestVector) { {"kontrollsumma", "111111117286c3159b65a705cf880570"} }; var provider = new HandelsbankenPaymentProvider("account=9999&secret=aaaabbbb"); Assert.False(provider.VerifyResponse(values["ordernummer"], 1100m, values)); }
public void GeneratedValuesShouldAgreeWithTestVectors() { var now = new DateTimeOffset(new DateTime(2001, 10, 14, 12, 15, 00)); var expected = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase) { {"entryid","switch"}, {"appaction","doDirectPay"}, {"switchaction","3"}, {"handOverDatatype","1"}, {"appname","ssse"}, {"language","sv"}, {"country","se"}, {"butikid","9999"}, {"ordernummer","ABCD000001"}, {"orderbelopp","1100"}, {"senastebokningstid", "20011015121500"}, {"retururl","https://www.butik.com/cgi/checkorder"}, {"kontrollsumma","26efb0517cdfbbacb13a61e91feae16d"} }; var provider = new HandelsbankenPaymentProvider("account=9999&secret=aaaabbbb") { Clock = () => now, Language = "sv", Country = "se" }; var actual = provider.GenerateDetails(expected["ordernummer"], 1100m, expected["retururl"], expected["retururl"], "ignored"); Assert.Equal("https://secure.handelsbanken.se/bb/glss/servlet/ssco_dirapp", actual.Url); foreach(var key in expected.Keys) { Assert.Equal(expected[key], actual.Fields[key]); } }
public void RejectsMismatchedIdentifier() { var provider = new HandelsbankenPaymentProvider("account=9999&secret=aaaabbbb"); Assert.False(provider.VerifyResponse("0000000001", 1100m, positiveTestVector)); }
public void RejectsNegativeTestVectors() { var provider = new HandelsbankenPaymentProvider("account=9999&secret=aaaabbbb"); Assert.False(provider.VerifyResponse(negativeTestVector["ordernummer"], 1100m, negativeTestVector)); }
public void AcceptsPositiveTestVectors() { var provider = new HandelsbankenPaymentProvider("account=9999&secret=aaaabbbb"); Assert.True(provider.VerifyResponse(positiveTestVector["ordernummer"], 1100m, positiveTestVector)); }