// Path: src/main/java/com/microsoft/exchange/impl/http/ThreadLocalCredentialsProviderFactory.java
// public class ThreadLocalCredentialsProviderFactory implements CredentialsProviderFactory {
// 
// 	private static final ThreadLocal<Credentials> threadLocal = new ThreadLocal<Credentials>();
// 	
// 	/*
// 	 * (non-Javadoc)
// 	 * @see com.microsoft.exchange.impl.http.CredentialsProviderFactory#getCredentialsProvider(java.net.URI)
// 	 */
// 	@Override
// 	public CredentialsProvider getCredentialsProvider(URI uri) {
// 		return new CredentialsProvider() {
// 			@Override
// 			public void setCredentials(AuthScope authscope,
// 					Credentials credentials) {
// 				ThreadLocalCredentialsProviderFactory.set(credentials);
// 			}
// 			@Override
// 			public Credentials getCredentials(AuthScope authscope) {
// 				return ThreadLocalCredentialsProviderFactory.get();
// 			}
// 			@Override
// 			public void clear() {
// 				ThreadLocalCredentialsProviderFactory.clear();
// 			}
// 		};
// 	}
// 
// 	/**
// 	 * 
// 	 * @return the current {@link Credentials} stored in the {@link ThreadLocal}.
// 	 */
// 	public static Credentials get() {
// 		return threadLocal.get();
// 	}
// 	
// 	/**
// 	 * Set a {@link Credentials} instance in the {@link ThreadLocal}
// 	 * @param credentials
// 	 */
// 	public static void set(Credentials credentials) {
// 		threadLocal.set(credentials);
// 	}
// 	
// 	/**
// 	 * Clear the {@link ThreadLocal}.
// 	 * @see {@link ThreadLocal#remove()}
// 	 */
// 	public static void clear() {
// 		threadLocal.remove();
// 	}
// }


import com.microsoft.exchange.messages.FindFolderResponse;
import static org.junit.Assert.*;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.NTCredentials;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.microsoft.exchange.impl.http.ThreadLocalCredentialsProviderFactory;
import com.microsoft.exchange.messages.FindFolder;
/**
 * See the NOTICE file distributed with this work
 * for additional information regarding copyright ownership.
 * Board of Regents of the University of Wisconsin System
 * licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a
 * copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package com.microsoft.exchange.integration;



@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:/com/microsoft/exchange/exchangeContext-usingNtlmCredentials.xml")
public class NtlmCredentialsIntegrationTest extends AbstractIntegrationTest {

	
	@Value("${username}")
	private String userName;
	
	@Value("${password}")
	private String password;
	
	@Value("${domain}")
	private String domain;
	
	@Test
	public void isAutowired()  {
		assertNotNull(ewsClient);
	
	}

	@Override
	public void initializeCredentials() {
		Credentials credentials = new NTCredentials(userName, password, "", domain);
		ThreadLocalCredentialsProviderFactory.set(credentials);
	}
	
// Path: src/main/java/com/microsoft/exchange/impl/http/ThreadLocalCredentialsProviderFactory.java
// public class ThreadLocalCredentialsProviderFactory implements CredentialsProviderFactory {
// 
// 	private static final ThreadLocal<Credentials> threadLocal = new ThreadLocal<Credentials>();
// 	
// 	/*
// 	 * (non-Javadoc)
// 	 * @see com.microsoft.exchange.impl.http.CredentialsProviderFactory#getCredentialsProvider(java.net.URI)
// 	 */
// 	@Override
// 	public CredentialsProvider getCredentialsProvider(URI uri) {
// 		return new CredentialsProvider() {
// 			@Override
// 			public void setCredentials(AuthScope authscope,
// 					Credentials credentials) {
// 				ThreadLocalCredentialsProviderFactory.set(credentials);
// 			}
// 			@Override
// 			public Credentials getCredentials(AuthScope authscope) {
// 				return ThreadLocalCredentialsProviderFactory.get();
// 			}
// 			@Override
// 			public void clear() {
// 				ThreadLocalCredentialsProviderFactory.clear();
// 			}
// 		};
// 	}
// 
// 	/**
// 	 * 
// 	 * @return the current {@link Credentials} stored in the {@link ThreadLocal}.
// 	 */
// 	public static Credentials get() {
// 		return threadLocal.get();
// 	}
// 	
// 	/**
// 	 * Set a {@link Credentials} instance in the {@link ThreadLocal}
// 	 * @param credentials
// 	 */
// 	public static void set(Credentials credentials) {
// 		threadLocal.set(credentials);
// 	}
// 	
// 	/**
// 	 * Clear the {@link ThreadLocal}.
// 	 * @see {@link ThreadLocal#remove()}
// 	 */
// 	public static void clear() {
// 		threadLocal.remove();
// 	}
// }


// Path: src/test/java/com/microsoft/exchange/integration/NtlmCredentialsIntegrationTest.java
import com.microsoft.exchange.messages.FindFolderResponse;
import static org.junit.Assert.*;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.NTCredentials;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.microsoft.exchange.impl.http.ThreadLocalCredentialsProviderFactory;
import com.microsoft.exchange.messages.FindFolder;

/**
 * See the NOTICE file distributed with this work
 * for additional information regarding copyright ownership.
 * Board of Regents of the University of Wisconsin System
 * licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a
 * copy of the License at:
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package com.microsoft.exchange.integration;



@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:/com/microsoft/exchange/exchangeContext-usingNtlmCredentials.xml")
public class NtlmCredentialsIntegrationTest extends AbstractIntegrationTest {

	
	@Value("${username}")
	private String userName;
	
	@Value("${password}")
	private String password;
	
	@Value("${domain}")
	private String domain;
	
	@Test
	public void isAutowired()  {
		assertNotNull(ewsClient);
	
	}

	@Override
	public void initializeCredentials() {
		Credentials credentials = new NTCredentials(userName, password, "", domain);
		ThreadLocalCredentialsProviderFactory.set(credentials);
	}
	
	@Test @Override