19d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair/*
29d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * Copyright 2008 the original author or authors.
39d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair *
49d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * Licensed under the Apache License, Version 2.0 (the "License");
59d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * you may not use this file except in compliance with the License.
69d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * You may obtain a copy of the License at
79d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair *
89d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair *      http://www.apache.org/licenses/LICENSE-2.0
99d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair *
109d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * Unless required by applicable law or agreed to in writing, software
119d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * distributed under the License is distributed on an "AS IS" BASIS,
129d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * See the License for the specific language governing permissions and
149d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * limitations under the License.
159d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair */
169d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismairpackage org.mockftpserver.fake.user
179d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
189d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismairimport org.mockftpserver.test.*
199d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
209d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair/**
219d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * Tests for UserAccount
229d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair *
239d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * @version $Revision: $ - $Date: $
249d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair *
259d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair * @author Chris Mair
269d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair */
279d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismairclass UserAccountTest extends AbstractGroovyTest {
289d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
299d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    private static final USERNAME = "user123"
309d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    private static final PASSWORD = "password123"
319d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    private static final HOME_DIR = "/usr/user123"
329d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
339d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    private UserAccount userAccount
349d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
359d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    void testIsValidPassword() {
369d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount.username = USERNAME
379d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount.password = PASSWORD
389d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        assert userAccount.isValidPassword(PASSWORD)
399d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
409d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        assert userAccount.isValidPassword("") == false
419d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        assert userAccount.isValidPassword("wrong") == false
429d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        assert userAccount.isValidPassword(null) == false
439d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    }
449d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
459d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    void testIsValidPassword_UsernameNullOrEmpty() {
469d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount.password = PASSWORD
479d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        shouldFail(AssertionError) { userAccount.isValidPassword(PASSWORD) }
489d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
499d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount.username = ''
509d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        shouldFail(AssertionError) { userAccount.isValidPassword(PASSWORD) }
519d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair	}
529d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
539d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    void testIsValidPassword_OverrideComparePassword() {
549d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        def customUserAccount = new CustomUserAccount()
559d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        customUserAccount.username = USERNAME
569d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        customUserAccount.password = PASSWORD
579d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        println customUserAccount
589d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        assert customUserAccount.isValidPassword(PASSWORD) == false
599d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        assert customUserAccount.isValidPassword(PASSWORD + "123")
609d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    }
619d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
629d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    void testIsValidPassword_PasswordNotCheckedDuringValidation() {
639d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount.username = USERNAME
649d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount.password = PASSWORD
659d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount.passwordCheckedDuringValidation = false
669d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        assert userAccount.isValidPassword("wrong")
679d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    }
689d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair
699d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    void setUp() {
709d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair        userAccount = new UserAccount()
719d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair    }
729d9aece7b2c2865253fdd2946a4d11a4f642c5aechrismair}