package com.streamreduce.core.model;
import com.streamreduce.test.service.TestUtils;
import org.bson.types.ObjectId;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
public class InventoryItemBuilderTest {
InventoryItem.Builder builderUnderTest;
@Before
public void setUp() {
builderUnderTest = new InventoryItem.Builder()
.user(mock(User.class))
.account(mock(Account.class));
}
@Test
public void testBuilder_happyPath() {
Connection c = TestUtils.createCloudConnection();
ObjectId metaDataObjectId = new ObjectId();
InventoryItem inventoryItem = builderUnderTest.connection(c)
.type("someType")
.metadataId(metaDataObjectId)
.build();
assertEquals(c, inventoryItem.getConnection());
assertEquals("someType", inventoryItem.getType());
assertEquals(metaDataObjectId, inventoryItem.getMetadataId());
}
@Test(expected = IllegalStateException.class)
public void testBuilder_nullConnection() {
InventoryItem inventoryItem = builderUnderTest
.type("someType")
.metadataId(new ObjectId())
.build();
}
@Test(expected = IllegalStateException.class)
public void testBuilder_nullType() {
InventoryItem inventoryItem = builderUnderTest
.connection(TestUtils.createCloudConnection())
.metadataId(new ObjectId())
.build();
}
@Test(expected = IllegalStateException.class)
public void testBuilder_emptyType() {
InventoryItem inventoryItem = builderUnderTest
.connection(TestUtils.createCloudConnection())
.type(" ")
.metadataId(new ObjectId())
.build();
}
@Test(expected = IllegalStateException.class)
public void testBuilder_nullMetadataId() {
InventoryItem inventoryItem = builderUnderTest
.connection(TestUtils.createCloudConnection())
.type("someType")
.build();
}
}