// Path: src/main/java/com/hyperwallet/clientsdk/util/Multipart.java
// public class Multipart {
// 
//     List<MultipartData> multipartList;
// 
//     public List<MultipartData> getMultipartList() {
//         return multipartList;
//     }
// 
//     public void setMultipartList(List<MultipartData> multipartList) {
//         this.multipartList = multipartList;
//     }
// 
//     public void add(MultipartData multipartData) {
//         if (multipartList == null) {
//             multipartList = new ArrayList<MultipartData>();
//         }
//         multipartList.add(multipartData);
//     }
// 
//     public static class MultipartData {
//         private final String contentType; //json, img
//         private final Map<String, String> entity; //name, content
//         private final String contentDisposition;
// 
//         MultipartData(String contentType, String contentDisposition, Map<String, String> entity){
//             this.contentType = contentType;
//             this.contentDisposition = contentDisposition;
//             this.entity = entity;
//         }
//         public String getContentType() {
//             return contentType;
//         }
// 
//         public String getContentDisposition() {
//             return contentDisposition;
//         }
// 
//         public Map<String, String> getEntity() {
//             return entity;
//         }
// 
//     }
// }


import com.hyperwallet.clientsdk.model.*;
import com.hyperwallet.clientsdk.util.Multipart;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
                    .firstName("John")
                    .lastName("Smith")
                    .postalCode("12345")
                    .profileType(HyperwalletUser.ProfileType.INDIVIDUAL)
                    .governmentId("333333333")
                    .phoneNumber("605-555-1323")
                    .programToken("invalidToken")
                    .stateProvince("CA")
                    .governmentIdType(HyperwalletUser.GovernmentIdType.PASSPORT);

            HyperwalletUser returnValue;
            try {
                client.setHyperwalletProxy("localhost", 3128);
                client.setHyperwalletProxyUsername("test1");
                client.setHyperwalletProxyPassword("test1");
                returnValue = client.createUser(hyperwalletUser);
            } catch (Exception e) {
                assertThat(e.getMessage(), is(containsString("Proxy Authentication Required")));
            }
        }
    }

    @Test
    public void testUploadStakeholderDocumentsWithInvalidData() throws Exception {
        if (!username.isEmpty()) {
            HyperwalletBusinessStakeholder returnValue;
            HyperwalletVerificationDocument hyperwalletVerificationDocument = new HyperwalletVerificationDocument();
            try {
                String userToken = "usr-490848fb-8e1f-4f7c-9a18-a5b7a372e602";
                String stkToken = "stk-e08f13b8-0e54-43d2-a587-67d513633275";
// Path: src/main/java/com/hyperwallet/clientsdk/util/Multipart.java
// public class Multipart {
// 
//     List<MultipartData> multipartList;
// 
//     public List<MultipartData> getMultipartList() {
//         return multipartList;
//     }
// 
//     public void setMultipartList(List<MultipartData> multipartList) {
//         this.multipartList = multipartList;
//     }
// 
//     public void add(MultipartData multipartData) {
//         if (multipartList == null) {
//             multipartList = new ArrayList<MultipartData>();
//         }
//         multipartList.add(multipartData);
//     }
// 
//     public static class MultipartData {
//         private final String contentType; //json, img
//         private final Map<String, String> entity; //name, content
//         private final String contentDisposition;
// 
//         MultipartData(String contentType, String contentDisposition, Map<String, String> entity){
//             this.contentType = contentType;
//             this.contentDisposition = contentDisposition;
//             this.entity = entity;
//         }
//         public String getContentType() {
//             return contentType;
//         }
// 
//         public String getContentDisposition() {
//             return contentDisposition;
//         }
// 
//         public Map<String, String> getEntity() {
//             return entity;
//         }
// 
//     }
// }


// Path: src/test/java/com/hyperwallet/clientsdk/HyperwalletFT.java
import com.hyperwallet.clientsdk.model.*;
import com.hyperwallet.clientsdk.util.Multipart;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;

                    .firstName("John")
                    .lastName("Smith")
                    .postalCode("12345")
                    .profileType(HyperwalletUser.ProfileType.INDIVIDUAL)
                    .governmentId("333333333")
                    .phoneNumber("605-555-1323")
                    .programToken("invalidToken")
                    .stateProvince("CA")
                    .governmentIdType(HyperwalletUser.GovernmentIdType.PASSPORT);

            HyperwalletUser returnValue;
            try {
                client.setHyperwalletProxy("localhost", 3128);
                client.setHyperwalletProxyUsername("test1");
                client.setHyperwalletProxyPassword("test1");
                returnValue = client.createUser(hyperwalletUser);
            } catch (Exception e) {
                assertThat(e.getMessage(), is(containsString("Proxy Authentication Required")));
            }
        }
    }

    @Test
    public void testUploadStakeholderDocumentsWithInvalidData() throws Exception {
        if (!username.isEmpty()) {
            HyperwalletBusinessStakeholder returnValue;
            HyperwalletVerificationDocument hyperwalletVerificationDocument = new HyperwalletVerificationDocument();
            try {
                String userToken = "usr-490848fb-8e1f-4f7c-9a18-a5b7a372e602";
                String stkToken = "stk-e08f13b8-0e54-43d2-a587-67d513633275";
                Multipart multipart = new Multipart();