package com.vaguehope.onosendai.config; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.junit.Test; public class NotificationStyleTest { @Test public void itRoundTripsViaString () throws Exception { final NotificationStyle ns = new NotificationStyle(true, false, true); final Object j = ns.toJson().toString(2); final NotificationStyle ns1 = NotificationStyle.parseJson(j); assertEquals(ns, ns1); } @Test public void itRoundTripsViaJsonObject () throws Exception { final NotificationStyle ns = new NotificationStyle(true, false, true); final Object j = ns.toJson(); final NotificationStyle ns1 = NotificationStyle.parseJson(j); assertEquals(ns, ns1); } @Test public void itParsesLegacyBoolean () throws Exception { assertEquals(NotificationStyle.DEFAULT, NotificationStyle.parseJson(Boolean.TRUE)); assertEquals(null, NotificationStyle.parseJson(Boolean.FALSE)); } @Test public void itThrowsOnStrangeObject () throws Exception { final Object obj = new Object(); try { NotificationStyle.parseJson(obj); fail("Expected ex."); } catch (final IllegalArgumentException e) { assertEquals("Unexpected object type " + obj.getClass() + ": " + obj, e.getMessage()); } } @Test public void itEqualsChecks () throws Exception { assertTrue(new NotificationStyle(true, false, false).equals(new NotificationStyle(true, false, false))); assertTrue(new NotificationStyle(false, true, false).equals(new NotificationStyle(false, true, false))); assertTrue(new NotificationStyle(false, false, true).equals(new NotificationStyle(false, false, true))); assertFalse(new NotificationStyle(true, false, false).equals(new NotificationStyle(false, false, false))); assertFalse(new NotificationStyle(false, true, false).equals(new NotificationStyle(false, false, false))); assertFalse(new NotificationStyle(false, false, true).equals(new NotificationStyle(false, false, false))); } @Test public void itDefaultTitles () throws Exception { assertEquals("plain", NotificationStyle.DEFAULT.getUiTitle()); } @Test public void itDetailedTitles () throws Exception { assertEquals("lights", new NotificationStyle(true, false, false).getUiTitle()); assertEquals("vibrate", new NotificationStyle(false, true, false).getUiTitle()); assertEquals("sound", new NotificationStyle(false, false, true).getUiTitle()); assertEquals("lights, sound", new NotificationStyle(true, false, true).getUiTitle()); assertEquals("lights, vibrate, sound", new NotificationStyle(true, true, true).getUiTitle()); } }