/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
package org.mozilla.gecko.sync.repositories.domain;
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;
public class TestClientRecord {
@Test
public void testEnsureDefaults() {
// Ensure defaults.
ClientRecord record = new ClientRecord();
assertEquals(ClientRecord.COLLECTION_NAME, record.collection);
assertEquals(0, record.lastModified);
assertEquals(false, record.deleted);
assertEquals("Default Name", record.name);
assertEquals(ClientRecord.CLIENT_TYPE, record.type);
}
@Test
public void testGetPayload() {
// Test ClientRecord.getPayload().
ClientRecord record = new ClientRecord();
CryptoRecord cryptoRecord = record.getEnvelope();
assertEquals(record.guid, cryptoRecord.payload.get("id"));
assertEquals(null, cryptoRecord.payload.get("collection"));
assertEquals(null, cryptoRecord.payload.get("lastModified"));
assertEquals(null, cryptoRecord.payload.get("deleted"));
assertEquals(record.name, cryptoRecord.payload.get("name"));
assertEquals(record.type, cryptoRecord.payload.get("type"));
}
@Test
public void testInitFromPayload() {
// Test ClientRecord.initFromPayload() in ClientRecordFactory.
ClientRecord record1 = new ClientRecord();
CryptoRecord cryptoRecord = record1.getEnvelope();
ClientRecordFactory factory = new ClientRecordFactory();
ClientRecord record2 = (ClientRecord) factory.createRecord(cryptoRecord);
assertEquals(cryptoRecord.payload.get("id"), record2.guid);
assertEquals(ClientRecord.COLLECTION_NAME, record2.collection);
assertEquals(0, record2.lastModified);
assertEquals(false, record2.deleted);
assertEquals(cryptoRecord.payload.get("name"), record2.name);
assertEquals(cryptoRecord.payload.get("type"), record2.type);
}
@Test
public void testCopyWithIDs() {
// Test ClientRecord.copyWithIDs.
ClientRecord record1 = new ClientRecord();
String newGUID = Utils.generateGuid();
ClientRecord record2 = (ClientRecord) record1.copyWithIDs(newGUID, 0);
assertEquals(newGUID, record2.guid);
assertEquals(0, record2.androidID);
assertEquals(record1.collection, record2.collection);
assertEquals(record1.lastModified, record2.lastModified);
assertEquals(record1.deleted, record2.deleted);
assertEquals(record1.name, record2.name);
assertEquals(record1.type, record2.type);
}
@Test
public void testEquals() {
// Test ClientRecord.equals().
ClientRecord record1 = new ClientRecord();
ClientRecord record2 = new ClientRecord();
record2.guid = record1.guid;
ClientRecord record3 = new ClientRecord(Utils.generateGuid());
record3.name = "New Name";
ClientRecord record4 = new ClientRecord(Utils.generateGuid());
record4.name = ClientRecord.DEFAULT_CLIENT_NAME;
record4.type = "desktop";
assertTrue(record2.equals(record1));
assertFalse(record3.equals(record1));
assertFalse(record3.equals(record2));
assertFalse(record4.equals(record1));
assertFalse(record4.equals(record2));
}
}