/src/test/java/com/allanbank/mongodb/bson/element/ObjectIdElementTest.java
https://github.com/cazacugmihai/mongodb-async-driver · Java · 257 lines · 142 code · 48 blank · 67 comment · 5 complexity · 98e2006748f3ece8ef85e5adb376fd6f MD5 · raw file
- /*
- * #%L
- * ObjectIdElementTest.java - mongodb-async-driver - Allanbank Consulting, Inc.
- * %%
- * Copyright (C) 2011 - 2014 Allanbank Consulting, Inc.
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * #L%
- */
- package com.allanbank.mongodb.bson.element;
- import static org.easymock.EasyMock.createMock;
- import static org.easymock.EasyMock.eq;
- import static org.easymock.EasyMock.expectLastCall;
- import static org.easymock.EasyMock.replay;
- import static org.easymock.EasyMock.verify;
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertNotSame;
- import static org.junit.Assert.assertSame;
- import static org.junit.Assert.assertTrue;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import org.junit.Test;
- import com.allanbank.mongodb.bson.Element;
- import com.allanbank.mongodb.bson.ElementType;
- import com.allanbank.mongodb.bson.Visitor;
- /**
- * ObjectIdElementTest provides tests for the {@link ObjectIdElement} class.
- *
- * @copyright 2012-2013, Allanbank Consulting, Inc., All Rights Reserved
- */
- public class ObjectIdElementTest {
- /**
- * Test method for
- * {@link ObjectIdElement#accept(com.allanbank.mongodb.bson.Visitor)} .
- */
- @Test
- public void testAccept() {
- final ObjectIdElement element = new ObjectIdElement("foo",
- new ObjectId());
- final Visitor mockVisitor = createMock(Visitor.class);
- mockVisitor.visitObjectId(eq("foo"), eq(element.getId()));
- expectLastCall();
- replay(mockVisitor);
- element.accept(mockVisitor);
- verify(mockVisitor);
- }
- /**
- * Test method for {@link ObjectIdElement#compareTo(Element)}.
- */
- @Test
- public void testCompareTo() {
- final ObjectId oid1 = new ObjectId();
- final ObjectId oid2 = new ObjectId();
- final ObjectIdElement a1 = new ObjectIdElement("a", oid1);
- final ObjectIdElement a2 = new ObjectIdElement("a", oid2);
- final ObjectIdElement b1 = new ObjectIdElement("b", oid1);
- final Element other = new MaxKeyElement("a");
- assertEquals(0, a1.compareTo(a1));
- assertTrue(a1.compareTo(a2) < 0);
- assertTrue(a2.compareTo(a1) > 0);
- assertTrue(a1.compareTo(b1) < 0);
- assertTrue(b1.compareTo(a1) > 0);
- assertTrue(a1.compareTo(other) < 0);
- assertTrue(other.compareTo(a1) > 0);
- }
- /**
- * Test method for
- * {@link ObjectIdElement#ObjectIdElement(java.lang.String, ObjectId)} .
- */
- @Test(expected = IllegalArgumentException.class)
- @SuppressWarnings("unused")
- public void testConstructorWithNullId() {
- new ObjectIdElement("foo", null);
- }
- /**
- * Test method for {@link ObjectIdElement#equals(java.lang.Object)} .
- */
- @Test
- public void testEqualsObject() {
- final List<Element> objs1 = new ArrayList<Element>();
- final List<Element> objs2 = new ArrayList<Element>();
- for (final String name : Arrays.asList("1", "foo", "bar", "baz", "2")) {
- for (int i = 0; i < 10; ++i) {
- final ObjectId id = new ObjectId();
- objs1.add(new ObjectIdElement(name, id));
- objs2.add(new ObjectIdElement(name, id));
- }
- }
- // Sanity check.
- assertEquals(objs1.size(), objs2.size());
- for (int i = 0; i < objs1.size(); ++i) {
- final Element obj1 = objs1.get(i);
- Element obj2 = objs2.get(i);
- assertTrue(obj1.equals(obj1));
- assertNotSame(obj1, obj2);
- assertEquals(obj1, obj2);
- assertEquals(obj1.hashCode(), obj2.hashCode());
- for (int j = i + 1; j < objs1.size(); ++j) {
- obj2 = objs2.get(j);
- assertFalse(obj1.equals(obj2));
- assertFalse("" + obj1 + " != " + obj2,
- obj1.hashCode() == obj2.hashCode());
- }
- assertFalse(obj1.equals("foo"));
- assertFalse(obj1.equals(null));
- assertFalse(obj1.equals(new MaxKeyElement(obj1.getName())));
- }
- }
- /**
- * Test method for {@link ObjectIdElement#getId()}.
- */
- @Test
- public void testGetValue() {
- final ObjectId id = new ObjectId();
- final ObjectIdElement element = new ObjectIdElement("foo", id);
- assertEquals(id, element.getId());
- }
- /**
- * Test method for
- * {@link ObjectIdElement#ObjectIdElement(java.lang.String, ObjectId)} .
- */
- @Test
- public void testObjectIdElement() {
- final ObjectId id = new ObjectId();
- final ObjectIdElement element = new ObjectIdElement("foo", id);
- assertEquals("foo", element.getName());
- assertEquals(id, element.getId());
- assertEquals(ElementType.OBJECT_ID, element.getType());
- }
- /**
- * Test method for {@link ObjectIdElement#ObjectIdElement}.
- */
- @SuppressWarnings("unused")
- @Test(expected = IllegalArgumentException.class)
- public void testThrowsOnNullName() {
- new ObjectIdElement(null, new ObjectId());
- }
- /**
- * Test method for {@link ObjectIdElement#ObjectIdElement}.
- */
- @SuppressWarnings("unused")
- @Test(expected = IllegalArgumentException.class)
- public void testThrowsOnNullValue() {
- new ObjectIdElement("s", null);
- }
- /**
- * Test method for {@link ObjectIdElement#toString()}.
- */
- @Test
- public void testToString() {
- final ObjectIdElement element = new ObjectIdElement("foo",
- new ObjectId(0x11223344, 0x1122334455667788L));
- assertEquals("foo : ObjectId('112233441122334455667788')",
- element.toString());
- }
- /**
- * Test method for {@link ObjectIdElement#getValueAsObject()}.
- */
- @Test
- public void testValueAsObject() {
- final ObjectIdElement element = new ObjectIdElement("foo",
- new ObjectId(0x11223344, 0x1122334455667788L));
- assertEquals(new ObjectId(0x11223344, 0x1122334455667788L),
- element.getValueAsObject());
- }
- /**
- * Test method for {@link ObjectIdElement#getValueAsString()}.
- */
- @Test
- public void testValueAsString() {
- final ObjectIdElement element = new ObjectIdElement("foo",
- new ObjectId(0x11223344, 0x1122334455667788L));
- assertEquals("ObjectId('112233441122334455667788')",
- element.getValueAsString());
- }
- /**
- * Test method for {@link ObjectIdElement#withName(String)}.
- */
- @Test
- public void testWithName() {
- final ObjectId id = new ObjectId();
- ObjectIdElement element = new ObjectIdElement("foo", id);
- element = element.withName("bar");
- assertEquals("bar", element.getName());
- assertEquals(id, element.getId());
- assertEquals(ElementType.OBJECT_ID, element.getType());
- }
- /**
- * Test method for {@link ObjectIdElement#withName(String)}.
- */
- @Test
- public void testWithNameWhenSameName() {
- final ObjectId id = new ObjectId();
- final ObjectIdElement element = new ObjectIdElement("foo", id);
- assertSame(element, element.withName("foo"));
- }
- }