bug6059: started cleaning up test cases a bit

This commit is contained in:
Axel Uhl
2024-12-23 12:28:54 +01:00
parent b45f3fda5c
commit 11e45a0aba
6 changed files with 23 additions and 121 deletions
@@ -3,6 +3,7 @@ package com.sap.sailing.domain.igtimiadapter.impl;
import static org.junit.Assert.assertFalse;
import java.net.URI;
import java.net.URL;
import org.junit.Rule;
import org.junit.Test;
@@ -19,14 +20,13 @@ public class WebSocketServerListTest {
@Test
public void testWebSocketServerList() throws Exception {
final ClientImpl testAppClient = new ClientImpl("7fcdd217e0aa16090edb4ad55b09ec43b2021090e209541fc9b7003c2a2b70c6",
"aa569cf4909bdc7b0e04b11873f3c4ea20687421e010fcc25b771cca9e6f3f9a", "http", "127.0.0.1", "8888", "/igtimi/oauth/v1/authorizationcallback");
final MongoDBConfiguration mongoTestConfig = MongoDBConfiguration.getDefaultTestConfiguration();
final MongoDBService mongoTestService = mongoTestConfig.getService();
RiotServer riotServer = RiotServer.create(PersistenceFactory.INSTANCE.getDomainObjectFactory(mongoTestService),
PersistenceFactory.INSTANCE.getMongoObjectFactory(mongoTestService));
final IgtimiConnectionFactoryImpl igtimiConnectionFactory = new IgtimiConnectionFactoryImpl(testAppClient, defaultBearerToken); // TODO bug6059: connect to the RiotServer launched above
final Iterable<URI> serverUris = igtimiConnectionFactory.getWebsocketServers();
final IgtimiConnectionFactoryImpl igtimiConnectionFactory = new IgtimiConnectionFactoryImpl(
new URL("http://127.0.0.1:8888"), /* defaultBearerToken */ null); // TODO bug6059: connect to the RiotServer launched above
final Iterable<URI> serverUris = igtimiConnectionFactory.createConnection().getWebsocketServers();
assertFalse(Util.isEmpty(serverUris));
for (final URI uri : serverUris) {
uri.getScheme().startsWith("ws");
@@ -1,100 +0,0 @@
package com.sap.sailing.domain.igtimiadapter.oauth;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import java.io.IOException;
import java.util.logging.Logger;
import org.apache.http.client.ClientProtocolException;
import org.json.simple.parser.ParseException;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.Timeout;
import com.sap.sailing.domain.igtimiadapter.Account;
import com.sap.sailing.domain.igtimiadapter.Client;
import com.sap.sailing.domain.igtimiadapter.IgtimiConnectionFactory;
import com.sap.sailing.domain.igtimiadapter.impl.Activator;
import com.sap.sailing.domain.igtimiadapter.impl.ClientImpl;
import com.sap.sailing.domain.igtimiadapter.impl.IgtimiConnectionFactoryImpl;
import com.sap.sailing.domain.igtimiadapter.persistence.PersistenceFactory;
import com.sap.sailing.domain.igtimiadapter.server.riot.RiotServer;
import com.sap.sse.mongodb.MongoDBConfiguration;
import com.sap.sse.mongodb.MongoDBService;
import com.sap.sse.security.testsupport.SecurityServiceMockFactory;
public class SignInTest {
private static final Logger logger = Logger.getLogger(SignInTest.class.getName());
@Rule public Timeout AbstractTracTracLiveTestTimeout = Timeout.millis(2 * 60 * 1000);
@Before
public void setUp() throws ClientProtocolException, IOException, org.json.simple.parser.ParseException {
Activator.getInstance().setSecurityService(SecurityServiceMockFactory.mockSecurityService());
}
@After
public void tearDown() throws Exception {
Activator.getInstance().setSecurityService(null);
}
@Test
public void testSimpleSignIn() throws Exception {
// use the credentials of "Another Test App"
final Client testAppClient = new ClientImpl("7fcdd217e0aa16090edb4ad55b09ec43b2021090e209541fc9b7003c2a2b70c6",
"aa569cf4909bdc7b0e04b11873f3c4ea20687421e010fcc25b771cca9e6f3f9a", "http", "127.0.0.1", "8888", "/igtimi/oauth/v1/authorizationcallback");
MongoDBConfiguration mongoTestConfig = MongoDBConfiguration.getDefaultTestConfiguration();
MongoDBService mongoTestService = mongoTestConfig.getService();
RiotServer riotServer = RiotServer.create(PersistenceFactory.INSTANCE.getDomainObjectFactory(mongoTestService),
PersistenceFactory.INSTANCE.getMongoObjectFactory(mongoTestService));
final IgtimiConnectionFactoryImpl igtimiConnectionFactory = new IgtimiConnectionFactoryImpl(testAppClient, defaultBearerToken); // TODO bug6059: connect to the riotServer launched above
final String code = igtimiConnectionFactory.authorizeAndReturnAuthorizedCode("axel.uhl@gmx.de", "123456");
logger.info("Igtimi OAuth code is "+code);
assertNotNull(code);
Account account = igtimiConnectionFactory.obtainAccessTokenFromAuthorizationCode("admin", code);
assertEquals("axel.uhl@gmx.de", account.getUser().getEmail());
}
@Test
public void testSimpleAuthorizeForAppNotYetAuthorized() throws Exception {
// use the credentials of "Another Test App"
final Client testAppClient = new ClientImpl("a4cecd8593e12d43a03433a6db0eea243a411749f93c278dce6a26d4804eebd2",
"4d66022d1ec3e2991f8053514495b61cc076ff02d664f0dc8f3df9150c3864ef", "http", "1.2.3.4", null, "/");
MongoDBConfiguration mongoTestConfig = MongoDBConfiguration.getDefaultTestConfiguration();
MongoDBService mongoTestService = mongoTestConfig.getService();
RiotServer riotServer = RiotServer.create(PersistenceFactory.INSTANCE.getDomainObjectFactory(mongoTestService),
PersistenceFactory.INSTANCE.getMongoObjectFactory(mongoTestService));
final IgtimiConnectionFactoryImpl igtimiConnectionFactory = new IgtimiConnectionFactoryImpl(testAppClient, defaultBearerToken); // TODO bug6059: connect to the riotServer launched above
final String code = igtimiConnectionFactory.authorizeAndReturnAuthorizedCode("axel.uhl@gmx.de", "123456");
logger.info("Igtimi OAuth code is "+code);
assertNotNull(code);
}
@Test
public void testAuthorize() throws Exception {
// use the credentials of "Another Test App"
final Client testAppClient = new ClientImpl("a4cecd8593e12d43a03433a6db0eea243a411749f93c278dce6a26d4804eebd2",
"4d66022d1ec3e2991f8053514495b61cc076ff02d664f0dc8f3df9150c3864ef", "http", "1.2.3.4", null, "/");
MongoDBConfiguration mongoTestConfig = MongoDBConfiguration.getDefaultTestConfiguration();
MongoDBService mongoTestService = mongoTestConfig.getService();
RiotServer riotServer = RiotServer.create(PersistenceFactory.INSTANCE.getDomainObjectFactory(mongoTestService),
PersistenceFactory.INSTANCE.getMongoObjectFactory(mongoTestService));
final IgtimiConnectionFactory igtimiConnectionFactory = new IgtimiConnectionFactoryImpl(testAppClient, defaultBearerToken); // TODO bug6059: connect to the riotServer launched above
final Account account = igtimiConnectionFactory.createAccountToAccessUserData("admin", "axel.uhl@gmx.de", "123456");
assertNotNull(account);
logger.info("Igtimi account is "+account);
}
@Test
public void testAddToken() throws ClientProtocolException, IllegalStateException, IOException, ParseException {
final IgtimiConnectionFactory connectionFactory = Activator.getInstance().getConnectionFactory();
Account account = connectionFactory.registerAccountForWhichClientIsAuthorized("admin", "de2d6531236200f7c9fb69a0463ffe8d6b13f62bd7aad8de98c22862e4928e8a");
assertEquals("axel.uhl@gmx.de", account.getUser().getEmail());
assertSame(account, connectionFactory.getExistingAccountByEmail("axel.uhl@gmx.de"));
}
}
@@ -4,7 +4,10 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.logging.Logger;
import org.junit.Before;
@@ -14,6 +17,7 @@ import com.igtimi.IgtimiData.ApparentWindSpeed;
import com.igtimi.IgtimiData.Data;
import com.igtimi.IgtimiData.DataMsg;
import com.igtimi.IgtimiData.DataPoint;
import com.igtimi.IgtimiData.DataPoint.DataCase;
import com.igtimi.IgtimiStream.Msg;
import com.sap.sailing.domain.igtimiadapter.DataAccessWindow;
import com.sap.sailing.domain.igtimiadapter.Device;
@@ -101,6 +105,7 @@ public class IgtimiPersistenceTest {
.build();
logger.info("Storing message: "+msg);
mongoObjectFactory.storeMessage(SERIAL_NUMBER, msg);
final Set<DataCase> dataCases = new HashSet<>(Arrays.asList(DataCase.values()));
final Iterable<Msg> result = domainObjectFactory.getMessages(SERIAL_NUMBER, TimeRange.create(AWS_TIME_POINT.minus(Duration.ONE_MINUTE), AWS_TIME_POINT.plus(Duration.ONE_MINUTE)), dataCases);
final Iterator<Msg> iterator = result.iterator();
assertTrue(iterator.hasNext());
@@ -20,7 +20,6 @@ import org.json.simple.parser.ParseException;
import org.junit.Test;
import com.sap.sailing.domain.igtimiadapter.DataAccessWindow;
import com.sap.sailing.domain.igtimiadapter.Group;
import com.sap.sailing.domain.igtimiadapter.Permission;
import com.sap.sailing.domain.igtimiadapter.Resource;
import com.sap.sailing.domain.igtimiadapter.datatypes.AWA;
@@ -40,7 +39,7 @@ public class BasicIgtimiAdapterTest extends AbstractTestWithIgtimiConnection {
assertFalse(Util.isEmpty(daws));
for (DataAccessWindow daw : daws) {
assertEquals("DD-EE-AAGA", daw.getDeviceSerialNumber());
assertTrue(daw.getId() == 17012 || daw.getRecipient() instanceof Group);
assertTrue(daw.getId() == 17012);
}
}
@@ -16,9 +16,10 @@ import java.util.logging.Logger;
import org.junit.Test;
import com.igtimi.IgtimiStream.Msg;
import com.sap.sailing.domain.igtimiadapter.BulkFixReceiver;
import com.sap.sailing.domain.igtimiadapter.datatypes.Fix;
import com.sap.sailing.domain.igtimiadapter.impl.FixFactory;
import com.sap.sailing.domain.igtimiadapter.persistence.PersistenceFactory;
import com.sap.sailing.domain.igtimiadapter.server.riot.RiotMessageListener;
import com.sap.sailing.domain.igtimiadapter.server.riot.RiotServer;
import com.sap.sse.common.Duration;
import com.sap.sse.common.Util;
@@ -29,17 +30,18 @@ import com.sap.sse.shared.util.Wait;
public class TestRiotServer {
private static final Logger logger = Logger.getLogger(TestRiotServer.class.getName());
private static class TestListener implements BulkFixReceiver {
private static class TestListener implements RiotMessageListener {
private final List<Fix> fixes = new ArrayList<>();
@Override
public void received(Iterable<Fix> fixes) {
Util.addAll(fixes, this.fixes);
}
public Iterable<Fix> getAllFixesReceived() {
return fixes;
}
@Override
public void onMessage(Msg message) {
Util.addAll(new FixFactory().createFixes(message), fixes);
}
}
@Test
@@ -8,6 +8,7 @@ import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -36,15 +37,12 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.Timeout;
import com.sap.sailing.domain.igtimiadapter.Account;
import com.sap.sailing.domain.igtimiadapter.BulkFixReceiver;
import com.sap.sailing.domain.igtimiadapter.Client;
import com.sap.sailing.domain.igtimiadapter.IgtimiConnection;
import com.sap.sailing.domain.igtimiadapter.IgtimiConnectionFactory;
import com.sap.sailing.domain.igtimiadapter.LiveDataConnection;
import com.sap.sailing.domain.igtimiadapter.datatypes.Fix;
import com.sap.sailing.domain.igtimiadapter.impl.Activator;
import com.sap.sailing.domain.igtimiadapter.impl.ClientImpl;
import com.sap.sailing.domain.igtimiadapter.impl.IgtimiConnectionFactoryImpl;
import com.sap.sailing.domain.igtimiadapter.persistence.PersistenceFactory;
import com.sap.sailing.domain.igtimiadapter.server.riot.RiotServer;
@@ -172,17 +170,15 @@ public class WebSocketTest {
@Test
public void testWebSocketConnect() throws Exception {
final List<Fix> allFixesReceived = new ArrayList<>();
final Client client = new ClientImpl("7fcdd217e0aa16090edb4ad55b09ec43b2021090e209541fc9b7003c2a2b70c6",
"aa569cf4909bdc7b0e04b11873f3c4ea20687421e010fcc25b771cca9e6f3f9a", "http", "127.0.0.1", "8888", "/igtimi/oauth/v1/authorizationcallback");
MongoDBConfiguration mongoTestConfig = MongoDBConfiguration.getDefaultTestConfiguration();
MongoDBService mongoTestService = mongoTestConfig.getService();
RiotServer riotServer = RiotServer.create(PersistenceFactory.INSTANCE.getDomainObjectFactory(mongoTestService),
PersistenceFactory.INSTANCE.getMongoObjectFactory(mongoTestService));
final IgtimiConnectionFactory igtimiConnectionFactory = new IgtimiConnectionFactoryImpl(client, defaultBearerToken); // TODO bug6059: connect to the riotServer launched above
final IgtimiConnectionFactory igtimiConnectionFactory = new IgtimiConnectionFactoryImpl(new URL("http://127.0.0.1:8888"),
/* defaultBearerToken */ null); // TODO bug6059: connect to the riotServer launched above
// the following is an access token for an account allowing axel.uhl@gmx.de to access
// the data from baur@stg-academy.org, particularly containing the Berlin test data
Account account = igtimiConnectionFactory.registerAccountForWhichClientIsAuthorized("admin", "9fded995cf21c8ed91ddaec13b220e8d5e44c65808d22ec2b1b7c32261121f26");
IgtimiConnection conn = igtimiConnectionFactory.connect(account);
IgtimiConnection conn = igtimiConnectionFactory.createConnection();
LiveDataConnection liveDataConnection = conn.getOrCreateLiveConnection(Collections.singleton("GA-EN-AAEJ"));
LiveDataConnection redundantSecondSharedConnection = conn.getOrCreateLiveConnection(Collections.singleton("GA-EN-AAEJ"));
assertTrue(liveDataConnection instanceof LiveDataConnectionWrapper);