1 /************************************************************************ 2 * Copyright (c) 2000-2006 The Apache Software Foundation. * 3 * All rights reserved. * 4 * ------------------------------------------------------------------- * 5 * Licensed under the Apache License, Version 2.0 (the "License"); you * 6 * may not use this file except in compliance with the License. You * 7 * may obtain a copy of the License at: * 8 * * 9 * http://www.apache.org/licenses/LICENSE-2.0 * 10 * * 11 * Unless required by applicable law or agreed to in writing, software * 12 * distributed under the License is distributed on an "AS IS" BASIS, * 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * 14 * implied. See the License for the specific language governing * 15 * permissions and limitations under the License. * 16 ***********************************************************************/ 17 18 19 package org.apache.james; 20 21 import org.apache.avalon.cornerstone.services.store.Store; 22 import org.apache.james.services.MailServer; 23 import org.apache.james.services.MailServerTestAllImplementations; 24 import org.apache.james.services.UsersRepository; 25 import org.apache.james.services.UsersStore; 26 import org.apache.james.test.mock.avalon.MockContext; 27 import org.apache.james.test.mock.avalon.MockLogger; 28 import org.apache.james.test.mock.avalon.MockServiceManager; 29 import org.apache.james.test.mock.avalon.MockStore; 30 import org.apache.james.test.mock.james.MockUsersStore; 31 import org.apache.james.test.mock.james.MockMailRepository; 32 import org.apache.james.userrepository.MockUsersRepository; 33 34 import java.io.File; 35 36 public class JamesTest extends MailServerTestAllImplementations { 37 38 public MailServer createMailServer() { 39 James james = new James(); 40 james.service(setUpServiceManager()); 41 MockLogger mockLogger = new MockLogger(); 42 mockLogger.disableDebug(); 43 james.enableLogging(mockLogger); 44 try { 45 JamesTestConfiguration conf = new JamesTestConfiguration(); 46 conf.init(); 47 james.configure(conf); 48 james.contextualize(new MockContext(File.createTempFile("james_test", "tmp"))); 49 james.initialize(); 50 } catch (Exception e) { 51 e.printStackTrace(); 52 fail("James.initialize() failed"); 53 } 54 return james; 55 } 56 57 private MockServiceManager setUpServiceManager() { 58 MockServiceManager serviceManager = new MockServiceManager(); 59 MockUsersRepository mockUsersRepository = new MockUsersRepository(); 60 serviceManager.put(UsersRepository.ROLE, mockUsersRepository); 61 serviceManager.put(UsersStore.ROLE, new MockUsersStore(mockUsersRepository)); 62 MockStore mockStore = new MockStore(); 63 mockStore.add(EXISTING_USER_NAME, new MockMailRepository()); 64 serviceManager.put(Store.ROLE, mockStore); 65 return serviceManager; 66 } 67 68 public boolean allowsPasswordlessUser() { 69 return false; 70 } 71 72 public boolean canTestUserExists() { 73 return true; 74 } 75 76 public boolean isUserExisting(MailServer mailServerImpl, String username) { 77 return ((James)mailServerImpl).isLocalUser(username); 78 } 79 }