package com.softwaremill.common.conf.encoding; import org.testng.Assert; import org.testng.annotations.Test; import static org.assertj.core.api.Assertions.assertThat; /** * @author Adam Warski (adam at warski dot org) */ public class TextCoderTest { @Test public void shouldEncodeAndDecode() { // Given MasterPasswordStore.setMasterPassword("top-secret-passw0rd"); String text = "ABCDE12345!@#$%"; TextCoder coder = new TextCoder(); // When String encoded = coder.encode(text); String decoded = coder.decode(encoded); // Then assertThat(decoded).isEqualTo(text); } @Test public void shouldReturnDifferentString() { // Given MasterPasswordStore.setMasterPassword("top-secret-passw0rd"); String text = "ABCDE12345!@#$%"; TextCoder coder = new TextCoder(); // When String encoded = coder.encode(text); // Then assertThat(encoded).isNotEqualTo(text); } @Test public void shouldNotDecodeUsingDifferentPassword() { // Given String text = "ABCDE12345!@#$%"; TextCoder coder = new TextCoder(); // When MasterPasswordStore.setMasterPassword("top-secret-passw0rd1"); String encoded = coder.encode(text); MasterPasswordStore.setMasterPassword("top-secret-passw0rd2"); try { coder.decode(encoded); Assert.fail("Should not decode."); } catch (Exception e) { // Ok. } } }