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]); } }