/// <summary>
 /// Constructor. See <a href="https://dev.maxmind.com/minfraud-score-and-insights-api-documentation/#Request_Body">
 /// the minFraud documentation</a> for a general overview of the request sent to the web
 /// service.
 /// </summary>
 /// <param name="device">Information about the device used in the transaction. This param is required.</param>
 /// <param name="account">Information about the account used in the transaction.</param>
 /// <param name="billing">Billing information used in the transaction.</param>
 /// <param name="creditCard">Information about the credit card used in the transaction.</param>
 /// <param name="email">Information about the email used in the transaction.</param>
 /// <param name="userEvent">Details about the event such as the time.</param>
 /// <param name="order">Details about the order.</param>
 /// <param name="payment">Information about the payment processing.</param>
 /// <param name="shipping">Shipping information used in the transaction.</param>
 /// <param name="shoppingCart">List of shopping items in the transaction.</param>
 public Transaction(
     Device device,
     Account account = null,
     Billing billing = null,
     CreditCard creditCard = null,
     Email email = null,
     Event userEvent = null,
     Order order = null,
     Payment payment = null,
     Shipping shipping = null,
     IList<ShoppingCartItem> shoppingCart = default(List<ShoppingCartItem>)
     )
 {
     this.Device = device;
     this.Account = account;
     this.Billing = billing;
     this.CreditCard = creditCard;
     this.Email = email;
     this.Event = userEvent;
     this.Order = order;
     this.Payment = payment;
     this.Shipping = shipping;
     ShoppingCart = shoppingCart;
 }
 public void TestLast4Digits()
 {
     var cc = new CreditCard(last4Digits: "1234");
     Assert.AreEqual("1234", cc.Last4Digits);
 }
 public void TestIssuerIdNumber()
 {
     var cc = new CreditCard(issuerIdNumber: "123456");
     Assert.AreEqual("123456", cc.IssuerIdNumber);
 }
 public void TestCvvResult()
 {
     var cc = new CreditCard(cvvResult: 'N');
     Assert.AreEqual('N', cc.CvvResult);
 }
 public void TestBankPhoneNumber()
 {
     string phone = "231-323-3123";
     var cc = new CreditCard(bankPhoneNumber: phone);
     Assert.AreEqual(phone, cc.BankPhoneNumber);
 }
 public void TestBankPhoneCountryCode()
 {
     var cc = new CreditCard(bankPhoneCountryCode: "1");
     Assert.AreEqual("1", cc.BankPhoneCountryCode);
 }
 public void TestBankName()
 {
     var cc = new CreditCard(bankName: "Bank");
     Assert.AreEqual("Bank", cc.BankName);
 }
 public void TestAvsResult()
 {
     var cc = new CreditCard(avsResult: 'Y');
     Assert.AreEqual('Y', cc.AvsResult);
 }