package com.github.podd.utils.test;

import org.junit.Assert;
import org.junit.Test;

import com.github.podd.utils.PasswordHash;

public class PasswordHashTest
{
    @Test
    public final void testCreateHashString() throws Exception
    {
        for(int i = 0; i < 10; i++)
        {
            final String password = Integer.toHexString(i);
            final String hash = PasswordHash.createHash(password);
            final String secondHash = PasswordHash.createHash(password);
            
            Assert.assertNotNull(hash);
            Assert.assertNotNull(secondHash);
            
            Assert.assertNotEquals(hash, secondHash);
        }
    }
    
    @Test
    public final void testCreateHashCharArray() throws Exception
    {
        for(int i = 0; i < 10; i++)
        {
            final String password = Integer.toHexString(i);
            final String hash = PasswordHash.createHash(password.toCharArray());
            final String secondHash = PasswordHash.createHash(password.toCharArray());
            
            Assert.assertNotNull(hash);
            Assert.assertNotNull(secondHash);
            
            Assert.assertNotEquals(hash, secondHash);
        }
    }
    
    @Test
    public final void testValidatePasswordStringString() throws Exception
    {
        for(int i = 0; i < 10; i++)
        {
            final String password = Integer.toHexString(i);
            final String hash = PasswordHash.createHash(password);
            
            Assert.assertNotNull(hash);
            
            Assert.assertTrue(PasswordHash.validatePassword(password, hash));
            Assert.assertFalse(PasswordHash.validatePassword(Integer.toHexString(i + 1), hash));
        }
    }
    
    @Test
    public final void testValidatePasswordCharArrayString() throws Exception
    {
        for(int i = 0; i < 10; i++)
        {
            final String password = Integer.toHexString(i);
            final String hash = PasswordHash.createHash(password.toCharArray());
            
            Assert.assertNotNull(hash);
            
            Assert.assertTrue(PasswordHash.validatePassword(password.toCharArray(), hash));
            
            Assert.assertFalse(PasswordHash.validatePassword(Integer.toHexString(i + 1).toCharArray(), hash));
        }
    }
    
}

@@ -1,8 +1,816 @@
+/**%0A * PODD is an OWL ontology database used for scientific project management%0A * %0A * Copyright (C) 2009-2013 The University Of Queensland%0A * %0A * This program is free software: you can redistribute it and/or modify it under the terms of the%0A * GNU Affero General Public License as published by the Free Software Foundation, either version 3%0A * of the License, or (at your option) any later version.%0A * %0A * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without%0A * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU%0A * Affero General Public License for more details.%0A * %0A * You should have received a copy of the GNU Affero General Public License along with this program.%0A * If not, see %3Chttp://www.gnu.org/licenses/%3E.%0A */%0A
 package 

Add license to PasswordHashTest