public void GetIdempotentKey_TwoSimilarInstances_ReturnsSameHashCode() { var request1 = new AuthorizeRequest { Customer = new AuthorizeCustomer { Address = "address", City = "city", Email = "email", FirstName = "first name", Identifier = "identifier", LastName = "last name", Phone = "phone", PostalCode = "postal code", PostalPlace = "postal place" }, Order = new OrderInfo { Currency = "NOK", DiscountAmount = 1, LineItems = new[] { new OrderItem { Description = "desc", DiscountAmount = 1, GrossUnitPrice = 2, LineNumber = 3, NetUnitPrice = 4, ProductId = "pid", Quantity = 5, VatAmount = 6, VatPercent = 7 } } }, Payment = new Payment { Account = new AccountProduct { ProfileNo = 1 }, Installment = new Installment { ProfileNo = 2 }, Type = PaymentType.Invoice }, }; var request2 = new AuthorizeRequest { Customer = new AuthorizeCustomer { Address = "address", City = "city", Email = "email", FirstName = "first name", Identifier = "identifier", LastName = "last name", Phone = "phone", PostalCode = "postal code", PostalPlace = "postal place" }, Order = new OrderInfo { Currency = "NOK", DiscountAmount = 1, LineItems = new[] { new OrderItem { Description = "desc", DiscountAmount = 1, GrossUnitPrice = 2, LineNumber = 3, NetUnitPrice = 4, ProductId = "pid", Quantity = 5, VatAmount = 6, VatPercent = 7 } } }, Payment = new Payment { Account = new AccountProduct { ProfileNo = 1 }, Installment = new Installment { ProfileNo = 2 }, Type = PaymentType.Invoice }, }; Assert.Equal(request1.GetIdempotentKey(), request2.GetIdempotentKey()); }