/* * Copyright (c) 2015-present, Parse, LLC. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.parse; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertThat; public class ParseRoleTest { @Before public void setUp() { ParseObject.registerSubclass(ParseRole.class); } @After public void tearDown() { ParseObject.unregisterSubclass(ParseRole.class); } //region testConstructor @Test public void testConstructorWithName() { ParseRole role = new ParseRole("Test"); assertEquals("Test", role.getName()); } @Test public void testConstructorWithNameAndACL() { ParseACL acl = new ParseACL(); ParseRole role = new ParseRole("Test", acl); assertEquals("Test", role.getName()); assertSame(acl, role.getACL()); } //endregion //region testSetName @Test public void testSetName() { ParseRole role = new ParseRole(); role.setName("Test"); assertEquals("Test", role.getName()); } //endregion //region testGetUsers @Test public void testGetUsers() { ParseRole role = new ParseRole("Test"); assertThat(role.getUsers(), instanceOf(ParseRelation.class)); assertSame(role.getUsers(), role.getRelation("users")); } //endregion //region testGetRoles @Test public void testGetRoles() { ParseRole role = new ParseRole("Test"); assertThat(role.getRoles(), instanceOf(ParseRelation.class)); assertSame(role.getRoles(), role.getRelation("roles")); } //endregion //region testValidateSave @Test public void testValidateSaveSuccess() { ParseRole role = new ParseRole("Test"); role.validateSave(); } @Test public void testValidateSaveSuccessWithNoName() { ParseRole role = new ParseRole("Test"); role.setObjectId("test"); // objectId != null and name == null should not fail role.validateSave(); } @Test(expected = IllegalStateException.class) public void testValidateSaveFailureWithNoObjectIdAndName() { ParseRole role = new ParseRole(); role.validateSave(); } //endregion //region testPut @Test public void testPutSuccess() { ParseRole role = new ParseRole("Test"); role.put("key", "value"); assertEquals("value", role.get("key")); } @Test(expected = IllegalArgumentException.class) public void testPutFailureWithNameAndObjectIdSet() { ParseRole role = new ParseRole("Test"); role.setObjectId("objectId"); role.put("name", "value"); } @Test(expected = IllegalArgumentException.class) public void testPutFailureWithInvalidNameTypeSet() { ParseRole role = new ParseRole("Test"); role.put("name", 1); } @Test(expected = IllegalArgumentException.class) public void testPutFailureWithInvalidNameValueSet() { ParseRole role = new ParseRole("Test"); role.put("name", "!!!!"); } //endregion //region testGetQuery @Test public void testGetQuery() { ParseQuery<?> query = ParseRole.getQuery(); assertEquals(ParseCorePlugins.getInstance().getSubclassingController().getClassName(ParseRole.class), query.getBuilder().getClassName()); } //endregion }