/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
package org.mozilla.gecko.sync.repositories.domain.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.mozilla.gecko.sync.CryptoRecord;
import org.mozilla.gecko.sync.Utils;
import org.mozilla.gecko.sync.repositories.domain.FormHistoryRecord;
public class TestFormHistoryRecord {
public static FormHistoryRecord withIdFieldNameAndValue(long id, String fieldName, String value) {
FormHistoryRecord fr = new FormHistoryRecord();
fr.androidID = id;
fr.fieldName = fieldName;
fr.fieldValue = value;
return fr;
}
@Test
public void testCollection() {
FormHistoryRecord fr = new FormHistoryRecord();
assertEquals("forms", fr.collection);
}
@Test
public void testGetPayload() {
FormHistoryRecord fr = withIdFieldNameAndValue(0, "username", "aUsername");
CryptoRecord rec = fr.getEnvelope();
assertEquals("username", rec.payload.get("name"));
assertEquals("aUsername", rec.payload.get("value"));
}
@Test
public void testCopyWithIDs() {
FormHistoryRecord fr = withIdFieldNameAndValue(0, "username", "aUsername");
String guid = Utils.generateGuid();
FormHistoryRecord fr2 = (FormHistoryRecord)fr.copyWithIDs(guid, 9999);
assertEquals(guid, fr2.guid);
assertEquals(9999, fr2.androidID);
assertEquals(fr.fieldName, fr2.fieldName);
assertEquals(fr.fieldValue, fr2.fieldValue);
}
@Test
public void testEquals() {
FormHistoryRecord fr1a = withIdFieldNameAndValue(0, "username1", "Alice");
FormHistoryRecord fr1b = withIdFieldNameAndValue(0, "username1", "Bob");
FormHistoryRecord fr2a = withIdFieldNameAndValue(0, "username2", "Alice");
FormHistoryRecord fr2b = withIdFieldNameAndValue(0, "username2", "Bob");
assertFalse(fr1a.equals(fr1b));
assertFalse(fr1a.equals(fr2a));
assertFalse(fr1a.equals(fr2b));
assertFalse(fr1b.equals(fr2a));
assertFalse(fr1b.equals(fr2b));
assertFalse(fr2a.equals(fr2b));
assertFalse(fr1a.equals(withIdFieldNameAndValue(fr1a.androidID, fr1a.fieldName, fr1b.fieldValue)));
assertFalse(fr1a.equals(fr1a.copyWithIDs(fr2a.guid, 9999)));
assertTrue(fr1a.equals(fr1a));
}
@Test
public void testEqualsForDeleted() {
FormHistoryRecord fr1 = withIdFieldNameAndValue(0, "username1", "Alice");
FormHistoryRecord fr2 = (FormHistoryRecord)fr1.copyWithIDs(fr1.guid, fr1.androidID);
assertTrue(fr1.equals(fr2));
fr1.deleted = true;
assertFalse(fr1.equals(fr2));
fr2.deleted = true;
assertTrue(fr1.equals(fr2));
FormHistoryRecord fr3 = (FormHistoryRecord)fr2.copyWithIDs(Utils.generateGuid(), 9999);
assertFalse(fr2.equals(fr3));
}
@Test
public void testTTL() {
FormHistoryRecord fr = withIdFieldNameAndValue(0, "username", "aUsername");
assertEquals(FormHistoryRecord.FORMS_TTL, fr.ttl);
CryptoRecord rec = fr.getEnvelope();
assertEquals(FormHistoryRecord.FORMS_TTL, rec.ttl);
}
}