package de.slackspace.alfa.azure;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import org.junit.Test;
import org.mockito.Mockito;
import com.microsoft.windowsazure.services.core.ServiceException;
import com.microsoft.windowsazure.services.table.TableContract;
import com.microsoft.windowsazure.services.table.models.QueryEntitiesOptions;
import com.microsoft.windowsazure.services.table.models.QueryEntitiesResult;
import de.slackspace.alfa.domain.TableResultPartial;
public class AzureServiceTest extends TestbaseAzure {
@Test
public void testGetDeploymentEntities() throws ServiceException {
TableContract contract = mock(TableContract.class);
QueryEntitiesResult result = new QueryEntitiesResult();
result.setEntities(getDeploymentEntities());
when(contract.queryEntities("deployments")).thenReturn(result);
AzureService cut = new AzureService(contract, 10);
TableResultPartial deploymentEntries = cut.getDeploymentEntries();
assertEquals(getDeploymentEntities().size(), deploymentEntries.getEntryList().size());
verify(contract).queryEntities("deployments");
}
@Test
public void testGetDeploymentEntitiesWithException() throws ServiceException {
TableContract contract = mock(TableContract.class);
QueryEntitiesResult result = new QueryEntitiesResult();
result.setEntities(getDeploymentEntities());
when(contract.queryEntities("deployments")).thenThrow(new ServiceException());
AzureService cut = new AzureService(contract, 10);
TableResultPartial deploymentEntries = cut.getDeploymentEntries();
assertEquals(0, deploymentEntries.getEntryList().size());
verify(contract).queryEntities("deployments");
}
@Test
public void testGetLogEntries() throws ServiceException {
TableContract contract = mock(TableContract.class);
QueryEntitiesResult result = new QueryEntitiesResult();
result.setEntities(getLogEntities());
when(contract.queryEntities(eq("WADLogsTable"), Mockito.any(QueryEntitiesOptions.class))).thenReturn(result);
AzureService cut = new AzureService(contract, 10);
TableResultPartial deploymentEntries = cut.getEntries(null, null, "WADLogsTable");
assertEquals(getDeploymentEntities().size(), deploymentEntries.getEntryList().size());
verify(contract).queryEntities(eq("WADLogsTable"), Mockito.any(QueryEntitiesOptions.class));
}
@Test
public void testGetLogEntriesWithPartitionKey() throws ServiceException {
TableContract contract = mock(TableContract.class);
QueryEntitiesResult result = new QueryEntitiesResult();
result.setEntities(getLogEntities());
when(contract.queryEntities(eq("WADLogsTable"), Mockito.any(QueryEntitiesOptions.class))).thenReturn(result);
AzureService cut = new AzureService(contract, 10);
TableResultPartial deploymentEntries = cut.getEntries("PartitionKey", "RowKey", "WADLogsTable");
assertEquals(getDeploymentEntities().size(), deploymentEntries.getEntryList().size());
verify(contract).queryEntities(eq("WADLogsTable"), Mockito.any(QueryEntitiesOptions.class));
}
@Test
public void testGetLogEntriesWithException() throws ServiceException {
TableContract contract = mock(TableContract.class);
QueryEntitiesResult result = new QueryEntitiesResult();
result.setEntities(getLogEntities());
when(contract.queryEntities(eq("WADLogsTable"), Mockito.any(QueryEntitiesOptions.class))).thenThrow(new ServiceException());
AzureService cut = new AzureService(contract, 10);
TableResultPartial deploymentEntries = cut.getEntries(null, null, "WADLogsTable");
assertEquals(0, deploymentEntries.getEntryList().size());
verify(contract).queryEntities(eq("WADLogsTable"), Mockito.any(QueryEntitiesOptions.class));
}
@Test
public void testGetPerformanceEntries() throws ServiceException {
TableContract contract = mock(TableContract.class);
QueryEntitiesResult result = new QueryEntitiesResult();
result.setEntities(getLogEntities());
when(contract.queryEntities(eq("WADPerformanceCountersTable"), Mockito.any(QueryEntitiesOptions.class))).thenReturn(result);
AzureService cut = new AzureService(contract, 10);
TableResultPartial entries = cut.getEntries(null, null, "WADPerformanceCountersTable");
assertEquals(getPerformanceEntities().size(), entries.getEntryList().size());
verify(contract).queryEntities(eq("WADPerformanceCountersTable"), Mockito.any(QueryEntitiesOptions.class));
}
}