package org.molgenis.security.core; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.testng.annotations.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.testng.Assert.*; public class MolgenisPasswordEncoderTest { @Test(expectedExceptions = IllegalArgumentException.class) public void MolgenisPasswordEncoder() { new MolgenisPasswordEncoder(null); } @Test public void encode() { String password = "password"; String encodedPassword = "encoded-password"; BCryptPasswordEncoder bCryptPasswordEncoder = mock(BCryptPasswordEncoder.class); when(bCryptPasswordEncoder.encode(password)).thenReturn(encodedPassword); assertEquals(new MolgenisPasswordEncoder(bCryptPasswordEncoder).encode(password), encodedPassword); } @Test public void matches() { String password = "password"; String encodedPassword = "encoded-password"; BCryptPasswordEncoder bCryptPasswordEncoder = mock(BCryptPasswordEncoder.class); when(bCryptPasswordEncoder.matches(password, encodedPassword)).thenReturn(true); assertTrue(new MolgenisPasswordEncoder(bCryptPasswordEncoder).matches(password, encodedPassword)); } @Test public void matches_noMatch() { String password = "password"; String encodedPassword = "encoded-password"; BCryptPasswordEncoder bCryptPasswordEncoder = mock(BCryptPasswordEncoder.class); when(bCryptPasswordEncoder.matches(password, encodedPassword)).thenReturn(true); assertFalse(new MolgenisPasswordEncoder(bCryptPasswordEncoder).matches("invalid-password", encodedPassword)); } }