Here are the examples of the java api @org.testng.annotations.Ignore taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
54 Examples
19
View Complete Implementation : IgnoreClassSample.java
Copyright Apache License 2.0
Author : cbeust
Copyright Apache License 2.0
Author : cbeust
@Ignore
public clreplaced IgnoreClreplacedSample extends ParentSample {
@Test
public void test() {
}
@Test
public void test2() {
}
}
19
View Complete Implementation : DateIndexTests.java
Copyright Apache License 2.0
Author : TIBCOSoftware
Copyright Apache License 2.0
Author : TIBCOSoftware
/**
* Copyright 2018 TIBCO Software Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except
* in compliance with the License.
* A copy of the License is included in the distribution package with this file.
* You also 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.
*/
/**
* CRUD tests for Date data type index
*/
@Ignore
public clreplaced DateIndexTests extends LifecycleServer {
/**
* *********************
*
* Test Cases
*
* **********************
*/
/**
* testCreateDateData - Insert nodes with date index
* @throws Exception
*/
@Test(description = "Insert nodes with date index")
public void testCreateDateData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
TGGraphMetadata gmd = conn.getGraphMetadata(true);
TGNodeType nodeDateIdxType = gmd.getNodeType("nodeDateIdx");
if (nodeDateIdxType == null)
throw new Exception("Node type not found");
Object[][] data = this.getDateData();
List<TGNode> nodes = new ArrayList<TGNode>();
for (int i = 0; i < data.length; i++) {
TGNode node = gof.createNode(nodeDateIdxType);
node.setAttribute("dateAttr", data[i][0]);
node.setAttribute("key", i);
nodes.add(node);
conn.insertEnreplacedy(node);
}
conn.commit();
conn.disconnect();
}
/**
* testReadDateData - Retrieve nodes with date index
* @throws Exception
*/
@Test(description = "Retrieve nodes with date index", dependsOnMethods = { "testCreateDateData" })
public void testReadDateData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeDateIdx");
Object[][] data = this.getDateData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// System.out.println("READ ATTR :" + data[i][0]);
// replacedert on Node attribute
replacedert.replacedertEquals(enreplacedy.getAttribute("dateAttr").getValue(), data[i][0]);
}
conn.disconnect();
}
/**
* testUpdateDateData - Update date index
* @throws Exception
*/
@Test(description = "Update date index", dependsOnMethods = { "testReadDateData" }, enabled = false)
public void testUpdateDateData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeDateIdx");
Object[][] data = this.getDateData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
enreplacedy.setAttribute("dateAttr", data[i][1]);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadUpdatedDateData - Retrieve nodes with updated date index
* @throws Exception
*/
@Test(description = "Retrieve nodes with updated date index", dependsOnMethods = { "testUpdateDateData" }, enabled = false)
public void testReadUpdatedDateData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeDateIdx");
Object[][] data = this.getDateData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// replacedert on Node attribute
// replacedert.replacedertFalse(enreplacedy.getAttribute("dateAttr").isNull(), "Expected attribute #"+i+" non null but found it null -");
replacedert.replacedertEquals(enreplacedy.getAttribute("dateAttr").getValue(), data[i][1]);
}
conn.disconnect();
}
/**
* testDeleteDateData - Delete date index
* @throws Exception
*/
@Test(description = "Delete date index", dependsOnMethods = { "testReadUpdatedDateData" }, enabled = false)
public void testDeleteDateData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeDateIdx");
Object[][] data = this.getDateData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", 0);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// delete the boolean value
enreplacedy.setAttribute("dateAttr", null);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadDeletedDateData - Retrieve deleted date index
* @throws Exception
*/
@Test(description = "Retrieve deleted date index", dependsOnMethods = { "testDeleteDateData" }, enabled = false)
public void testReadDeletedDateData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeDateIdx");
Object[][] data = this.getDateData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", 0);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// replacedert on Node attribute
replacedert.replacedertTrue(enreplacedy.getAttribute("dateAttr").isNull(), "Expected attribute #" + i + " null but found it non null -");
}
conn.disconnect();
}
/**
* *********************
*
* Data Providers
*
* **********************
*/
/**
* Provide a set of date data
* @return Object[][] of data
* @throws IOException
* @throws EvalError
*/
@DataProvider(name = "DateData")
public Object[][] getDateData() throws IOException, EvalError {
Object[][] data = PipedData.read(this.getClreplaced().getResourcereplacedtream("/" + this.getClreplaced().getPackage().getName().replace('.', '/') + "/date.data"));
return data;
}
}
19
View Complete Implementation : UserDefinedFunctionQueryTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeClreplaced times out inconsistently
@Ignore
public clreplaced UserDefinedFunctionQueryTest extends TestSuiteBase {
private Database createdDatabase;
private CosmosContainer createdCollection;
private List<CosmosUserDefinedFunctionProperties> createdUDF = new ArrayList<>();
private CosmosClient client;
public String getCollectionLink() {
return TestUtils.getCollectionNameLink(createdDatabase.id(), createdCollection.id());
}
@Factory(dataProvider = "clientBuildersWithDirect")
public UserDefinedFunctionQueryTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryWithFilter() throws Exception {
String filterId = createdUDF.get(0).id();
String query = String.format("SELECT * from c where c.id = '%s'", filterId);
FeedOptions options = new FeedOptions();
options.maxItemCount(5);
Flux<FeedResponse<CosmosUserDefinedFunctionProperties>> queryObservable = createdCollection.getScripts().queryUserDefinedFunctions(query, options);
List<CosmosUserDefinedFunctionProperties> expectedDocs = createdUDF.stream().filter(sp -> filterId.equals(sp.id())).collect(Collectors.toList());
replacedertThat(expectedDocs).isNotEmpty();
int expectedPageSize = (expectedDocs.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosUserDefinedFunctionProperties> validator = new FeedResponseListValidator.Builder<CosmosUserDefinedFunctionProperties>().totalSize(expectedDocs.size()).exactlyContainsInAnyOrder(expectedDocs.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).pageSatisfy(0, new FeedResponseValidator.Builder<CosmosUserDefinedFunctionProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator, 10000);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void query_NoResults() throws Exception {
String query = "SELECT * from root r where r.id = '2'";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosUserDefinedFunctionProperties>> queryObservable = createdCollection.getScripts().queryUserDefinedFunctions(query, options);
FeedResponseListValidator<CosmosUserDefinedFunctionProperties> validator = new FeedResponseListValidator.Builder<CosmosUserDefinedFunctionProperties>().containsExactly(new ArrayList<>()).numberOfPages(1).pageSatisfy(0, new FeedResponseValidator.Builder<CosmosUserDefinedFunctionProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryAll() throws Exception {
String query = "SELECT * from root";
FeedOptions options = new FeedOptions();
options.maxItemCount(3);
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosUserDefinedFunctionProperties>> queryObservable = createdCollection.getScripts().queryUserDefinedFunctions(query, options);
List<CosmosUserDefinedFunctionProperties> expectedDocs = createdUDF;
int expectedPageSize = (expectedDocs.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosUserDefinedFunctionProperties> validator = new FeedResponseListValidator.Builder<CosmosUserDefinedFunctionProperties>().exactlyContainsInAnyOrder(expectedDocs.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).allPagesSatisfy(new FeedResponseValidator.Builder<CosmosUserDefinedFunctionProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void invalidQuerySytax() throws Exception {
String query = "I am an invalid query";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosUserDefinedFunctionProperties>> queryObservable = createdCollection.getScripts().queryUserDefinedFunctions(query, options);
FailureValidator validator = new FailureValidator.Builder().instanceOf(CosmosClientException.clreplaced).statusCode(400).notNullActivityId().build();
validateQueryFailure(queryObservable, validator);
}
public CosmosUserDefinedFunctionProperties createUserDefinedFunction(CosmosContainer cosmosContainer) {
CosmosUserDefinedFunctionProperties storedProcedure = getUserDefinedFunctionDef();
return cosmosContainer.getScripts().createUserDefinedFunction(storedProcedure).block().properties();
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() throws Exception {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
for (int i = 0; i < 5; i++) {
createdUDF.add(createUserDefinedFunction(createdCollection));
}
waitIfNeededForReplicasToCatchUp(clientBuilder());
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
private static CosmosUserDefinedFunctionProperties getUserDefinedFunctionDef() {
CosmosUserDefinedFunctionProperties udf = new CosmosUserDefinedFunctionProperties();
udf.id(UUID.randomUUID().toString());
udf.body("function() {var x = 10;}");
return udf;
}
}
19
View Complete Implementation : ChildClassTestSample.java
Copyright Apache License 2.0
Author : cbeust
Copyright Apache License 2.0
Author : cbeust
@Ignore
public clreplaced ChildClreplacedTestSample extends ParentClreplacedTestSample {
@Override
protected void hook() {
}
}
19
View Complete Implementation : GenericsWithTypeclassesTests.java
Copyright Apache License 2.0
Author : wurstscript
Copyright Apache License 2.0
Author : wurstscript
@Test
@Ignore
public void normalFoldlInfer() {
// #657
testreplacedertOkLines(true, "package test", "native testSuccess()", "@extern native I2S(int i) returns string", "string array s", "int s_max = -1", "clreplaced LinkedList<T:>", " T x", " function foldl<Q:>(Q startValue, FoldClosure<T, Q> predicate) returns Q", " return predicate.run(x, startValue)", " function toString() returns string", " let fold = foldl(\"[\", (i, q) -> q + I2S(i castTo int) + \",\")", " return fold + \"]\"", "interface FoldClosure<T:, Q:>", " function run(T t, Q q) returns Q", "init", " let x = new LinkedList<int>", " x.x = 5", " if x.toString() == \"[5,]\"", " testSuccess()");
}
19
View Complete Implementation : TriggerQueryTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeClreplaced times out.
@Ignore
public clreplaced TriggerQueryTest extends TestSuiteBase {
private CosmosContainer createdCollection;
private static final List<CosmosTriggerProperties> createdTriggers = new ArrayList<>();
private CosmosClient client;
@Factory(dataProvider = "clientBuildersWithDirect")
public TriggerQueryTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryWithFilter() throws Exception {
String filterId = createdTriggers.get(0).id();
String query = String.format("SELECT * from c where c.id = '%s'", filterId);
FeedOptions options = new FeedOptions();
options.maxItemCount(5);
Flux<FeedResponse<CosmosTriggerProperties>> queryObservable = createdCollection.getScripts().queryTriggers(query, options);
List<CosmosTriggerProperties> expectedDocs = createdTriggers.stream().filter(sp -> filterId.equals(sp.id())).collect(Collectors.toList());
replacedertThat(expectedDocs).isNotEmpty();
int expectedPageSize = (expectedDocs.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosTriggerProperties> validator = new FeedResponseListValidator.Builder<CosmosTriggerProperties>().totalSize(expectedDocs.size()).exactlyContainsInAnyOrder(expectedDocs.stream().map(Resource::resourceId).collect(Collectors.toList())).numberOfPages(expectedPageSize).pageSatisfy(0, new FeedResponseValidator.Builder<CosmosTriggerProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator, 10000);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void query_NoResults() throws Exception {
String query = "SELECT * from root r where r.id = '2'";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosTriggerProperties>> queryObservable = createdCollection.getScripts().queryTriggers(query, options);
FeedResponseListValidator<CosmosTriggerProperties> validator = new FeedResponseListValidator.Builder<CosmosTriggerProperties>().containsExactly(new ArrayList<>()).numberOfPages(1).pageSatisfy(0, new FeedResponseValidator.Builder<CosmosTriggerProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryAll() throws Exception {
String query = "SELECT * from root";
FeedOptions options = new FeedOptions();
options.maxItemCount(3);
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosTriggerProperties>> queryObservable = createdCollection.getScripts().queryTriggers(query, options);
createdTriggers.forEach(cosmosTriggerSettings -> logger.info("Created trigger in method: {}", cosmosTriggerSettings.resourceId()));
List<CosmosTriggerProperties> expectedDocs = createdTriggers;
int expectedPageSize = (expectedDocs.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosTriggerProperties> validator = new FeedResponseListValidator.Builder<CosmosTriggerProperties>().exactlyContainsInAnyOrder(expectedDocs.stream().map(Resource::resourceId).collect(Collectors.toList())).numberOfPages(expectedPageSize).allPagesSatisfy(new FeedResponseValidator.Builder<CosmosTriggerProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void invalidQuerySytax() throws Exception {
String query = "I am an invalid query";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosTriggerProperties>> queryObservable = createdCollection.getScripts().queryTriggers(query, options);
FailureValidator validator = new FailureValidator.Builder().instanceOf(CosmosClientException.clreplaced).statusCode(400).notNullActivityId().build();
validateQueryFailure(queryObservable, validator);
}
public CosmosTriggerProperties createTrigger(CosmosContainer cosmosContainer) {
CosmosTriggerProperties storedProcedure = getTriggerDef();
return cosmosContainer.getScripts().createTrigger(storedProcedure).block().properties();
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() throws Exception {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
createdTriggers.clear();
for (int i = 0; i < 5; i++) {
createdTriggers.add(createTrigger(createdCollection));
}
waitIfNeededForReplicasToCatchUp(clientBuilder());
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
private static CosmosTriggerProperties getTriggerDef() {
CosmosTriggerProperties trigger = new CosmosTriggerProperties();
trigger.id(UUID.randomUUID().toString());
trigger.body("function() {var x = 10;}");
trigger.triggerOperation(TriggerOperation.CREATE);
trigger.triggerType(TriggerType.PRE);
return trigger;
}
}
19
View Complete Implementation : TestChannelsFromEvents.java
Copyright Apache License 2.0
Author : princesslana
Copyright Apache License 2.0
Author : princesslana
@Ignore
private <T> void replacedertObserver(TestObserver<T> observer, T value) {
observer.replacedertNoErrors();
observer.replacedertComplete();
observer.replacedertValue(value);
}
19
View Complete Implementation : ReadFeedTriggersTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeClreplaced times out inconsistently.
@Ignore
public clreplaced ReadFeedTriggersTest extends TestSuiteBase {
private CosmosContainer createdCollection;
private List<CosmosTriggerProperties> createdTriggers = new ArrayList<>();
private CosmosClient client;
@Factory(dataProvider = "clientBuildersWithDirect")
public ReadFeedTriggersTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = FEED_TIMEOUT)
public void readTriggers() throws Exception {
FeedOptions options = new FeedOptions();
options.maxItemCount(2);
Flux<FeedResponse<CosmosTriggerProperties>> feedObservable = createdCollection.getScripts().readAllTriggers(options);
int expectedPageSize = (createdTriggers.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosTriggerProperties> validator = new FeedResponseListValidator.Builder<CosmosTriggerProperties>().totalSize(createdTriggers.size()).exactlyContainsInAnyOrder(createdTriggers.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).allPagesSatisfy(new FeedResponseValidator.Builder<CosmosTriggerProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(feedObservable, validator, FEED_TIMEOUT);
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
for (int i = 0; i < 5; i++) {
this.createdTriggers.add(this.createTriggers(createdCollection));
}
waitIfNeededForReplicasToCatchUp(clientBuilder());
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
public CosmosTriggerProperties createTriggers(CosmosContainer cosmosContainer) {
CosmosTriggerProperties trigger = new CosmosTriggerProperties();
trigger.id(UUID.randomUUID().toString());
trigger.body("function() {var x = 10;}");
trigger.triggerOperation(TriggerOperation.CREATE);
trigger.triggerType(TriggerType.PRE);
return cosmosContainer.getScripts().createTrigger(trigger).block().properties();
}
}
19
View Complete Implementation : TimeIndexTests.java
Copyright Apache License 2.0
Author : TIBCOSoftware
Copyright Apache License 2.0
Author : TIBCOSoftware
/**
* Copyright 2018 TIBCO Software Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except
* in compliance with the License.
* A copy of the License is included in the distribution package with this file.
* You also 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.
*/
/**
* CRUD tests for time data type index
*/
@Ignore
public clreplaced TimeIndexTests extends LifecycleServer {
Object[][] data;
public TimeIndexTests() throws IOException, EvalError {
this.data = this.getTimeData();
}
/**
* *********************
*
* Test Cases
*
* **********************
*/
/**
* testCreateTimeData - Insert nodes with time index
* @throws Exception
*/
@Test(description = "Insert nodes with time index")
public void testCreateTimeData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
TGGraphMetadata gmd = conn.getGraphMetadata(true);
TGNodeType nodeTimeIdxType = gmd.getNodeType("nodeTimeIdx");
if (nodeTimeIdxType == null)
throw new Exception("Node type not found");
// Object[][] data = this.getTimeData();
List<TGNode> nodes = new ArrayList<TGNode>();
for (int i = 0; i < data.length; i++) {
// System.out.println("CREATE ATTR:" + data[i][0]);
TGNode node = gof.createNode(nodeTimeIdxType);
node.setAttribute("timeAttr", data[i][0]);
node.setAttribute("key", i);
nodes.add(node);
conn.insertEnreplacedy(node);
}
conn.commit();
conn.disconnect();
}
/**
* testReadTimeData - Retrieve nodes with time index
* @throws Exception
*/
@Test(description = "Retrieve nodes with time index", dependsOnMethods = { "testCreateTimeData" })
public void testReadTimeData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimeIdx");
// Object[][] data = this.getTimeData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
System.out.println("READ ATTR:" + enreplacedy.getAttribute("timeAttr").getValue());
// replacedert on Node attribute
// replacedert only on time (HOUR, MIN, SEC, MILLISEC) since the Date part that comes back from DB is junk
Calendar timeAttr = (Calendar) enreplacedy.getAttribute("timeAttr").getValue();
if (timeAttr != null) {
replacedert.replacedertEquals(timeAttr.get(Calendar.HOUR_OF_DAY), ((Calendar) data[i][0]).get(Calendar.HOUR_OF_DAY));
replacedert.replacedertEquals(timeAttr.get(Calendar.MINUTE), ((Calendar) data[i][0]).get(Calendar.MINUTE));
replacedert.replacedertEquals(timeAttr.get(Calendar.SECOND), ((Calendar) data[i][0]).get(Calendar.SECOND));
replacedert.replacedertEquals(timeAttr.get(Calendar.MILLISECOND), ((Calendar) data[i][0]).get(Calendar.MILLISECOND));
} else {
// Attribute value is Null. Make sure the original value was Null too
replacedert.replacedertEquals(timeAttr, data[i][0]);
}
}
conn.disconnect();
}
/**
* testUpdateTimeData - Update time index
* @throws Exception
*/
@Test(description = "Update time index", dependsOnMethods = { "testReadTimeData" }, enabled = false)
public void testUpdateTimeData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimeIdx");
// Object[][] data = this.getTimeData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// System.out.println("UPDATE ATTR:" + data[i][1] + " - Length:" + ((Time) data[i][1]).length());
enreplacedy.setAttribute("timeAttr", data[i][1]);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadUpdatedTimeData - Retrieve nodes with updated time index
* @throws Exception
*/
@Test(description = "Retrieve nodes with updated time index", dependsOnMethods = { "testUpdateTimeData" }, enabled = false)
public void testReadUpdatedTimeData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimeIdx");
// Object[][] data = this.getTimeData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// System.out.println("READ UPDATED ATTR:" + enreplacedy.getAttribute("timeAttr").getValue());
// replacedert on Node attribute
// replacedert only on time (HOUR, MIN, SEC, MILLISEC) since the Date part that comes back from DB is junk
// replacedert.replacedertFalse(enreplacedy.getAttribute("timeAttr").isNull(), "Expected attribute #"+i+" non null but found it null -");
Calendar timeAttr = (Calendar) enreplacedy.getAttribute("timeAttr").getValue();
if (timeAttr != null) {
replacedert.replacedertEquals(timeAttr.get(Calendar.HOUR_OF_DAY), ((Calendar) data[i][1]).get(Calendar.HOUR_OF_DAY));
replacedert.replacedertEquals(timeAttr.get(Calendar.MINUTE), ((Calendar) data[i][1]).get(Calendar.MINUTE));
replacedert.replacedertEquals(timeAttr.get(Calendar.SECOND), ((Calendar) data[i][1]).get(Calendar.SECOND));
replacedert.replacedertEquals(timeAttr.get(Calendar.MILLISECOND), ((Calendar) data[i][1]).get(Calendar.MILLISECOND));
} else {
// Attribute value is Null. Make sure the original value was Null too
replacedert.replacedertEquals(timeAttr, data[i][1]);
}
}
conn.disconnect();
}
/**
* testDeleteTimeData - Delete time index
* @throws Exception
*/
@Test(description = "Delete time index", dependsOnMethods = { "testReadUpdatedTimeData" }, enabled = false)
public void testDeleteTimeData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimeIdx");
// Object[][] data = this.getTimeData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// delete the time value by setting it up to null
enreplacedy.setAttribute("timeAttr", null);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadDeletedTimeData - Retrieve nodes with deleted time index
* @throws Exception
*/
@Test(description = "Retrieve nodes with deleted time index", dependsOnMethods = { "testDeleteTimeData" }, enabled = false)
public void testReadDeletedTimeData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimeIdx");
// Object[][] data = this.getTimeData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// replacedert on Node attribute
replacedert.replacedertTrue(enreplacedy.getAttribute("timeAttr").isNull(), "Expected attribute #" + i + " null but found it non null -");
}
conn.disconnect();
}
/**
* *********************
*
* Data Providers
*
* **********************
*/
/**
* Provide a set of time data
* @return Object[][] of data
* @throws IOException
* @throws EvalError
*/
@DataProvider(name = "TimeData")
public Object[][] getTimeData() throws IOException, EvalError {
Object[][] data = PipedData.read(this.getClreplaced().getResourcereplacedtream("/" + this.getClreplaced().getPackage().getName().replace('.', '/') + "/time.data"));
return data;
}
}
19
View Complete Implementation : VeryLargeDocumentQueryTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME: beforeClreplaced method times out.
@Ignore
public clreplaced VeryLargeDoreplacedentQueryTest extends TestSuiteBase {
private final static int TIMEOUT = 60000;
private final static int SETUP_TIMEOUT = 60000;
private CosmosContainer createdCollection;
private CosmosClient client;
@Factory(dataProvider = "simpleClientBuildersWithDirect")
public VeryLargeDoreplacedentQueryTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "emulator" }, timeOut = TIMEOUT)
public void queryLargeDoreplacedents() {
int cnt = 5;
for (int i = 0; i < cnt; i++) {
createLargeDoreplacedent();
}
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosItemProperties>> feedResponseFlux = createdCollection.queryItems("SELECT * FROM r", options);
AtomicInteger totalCount = new AtomicInteger();
StepVerifier.create(feedResponseFlux.subscribeOn(Schedulers.single())).thenConsumeWhile(feedResponse -> {
int size = feedResponse.results().size();
totalCount.addAndGet(size);
return true;
}).expectComplete().verify(Duration.ofMillis(subscriberValidationTimeout));
}
private void createLargeDoreplacedent() {
CosmosItemProperties docDefinition = getDoreplacedentDefinition();
// Keep size as ~ 1.999MB to account for size of other props
int size = (int) (ONE_MB * 1.999);
BridgeInternal.setProperty(docDefinition, "largeString", StringUtils.repeat("x", size));
Mono<CosmosItemResponse> createObservable = createdCollection.createItem(docDefinition, new CosmosItemRequestOptions());
StepVerifier.create(createObservable.subscribeOn(Schedulers.single())).expectNextMatches(cosmosItemResponse -> cosmosItemResponse.properties().id().equals(docDefinition.id())).expectComplete().verify(Duration.ofMillis(subscriberValidationTimeout));
}
@BeforeClreplaced(groups = { "emulator" }, timeOut = 2 * SETUP_TIMEOUT)
public void beforeClreplaced() {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
}
@AfterClreplaced(groups = { "emulator" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
private static CosmosItemProperties getDoreplacedentDefinition() {
String uuid = UUID.randomUUID().toString();
CosmosItemProperties doc = new CosmosItemProperties(String.format("{ " + "\"id\": \"%s\", " + "\"mypk\": \"%s\", " + "}", uuid, uuid));
return doc;
}
}
19
View Complete Implementation : InMemoryGroupbyTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME setup method times out occasionally when running against emulator.
@Ignore
public clreplaced InMemoryGroupbyTest extends DoreplacedentClientTest {
private final static int TIMEOUT = 60000;
private AsyncDoreplacedentClient client;
private Database createdDatabase;
private DoreplacedentCollection createdCollection;
@BeforeClreplaced(groups = "samples", timeOut = 2 * TIMEOUT)
public void setUp() throws Exception {
ConnectionPolicy connectionPolicy = new ConnectionPolicy().connectionMode(ConnectionMode.DIRECT);
this.clientBuilder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.SESSION);
this.client = this.clientBuilder().build();
// CREATE database
createdDatabase = Utils.createDatabaseForTest(client);
DoreplacedentCollection collectionDefinition = new DoreplacedentCollection();
collectionDefinition.id(UUID.randomUUID().toString());
ParreplacedionKeyDefinition parreplacedionKeyDef = new ParreplacedionKeyDefinition();
ArrayList<String> paths = new ArrayList<String>();
paths.add("/mypk");
parreplacedionKeyDef.paths(paths);
collectionDefinition.setParreplacedionKey(parreplacedionKeyDef);
// CREATE collection
createdCollection = client.createCollection("dbs/" + createdDatabase.id(), collectionDefinition, null).single().block().getResource();
int numberOfPayers = 10;
int numberOfDoreplacedentsPerPayer = 10;
List<Mono<Void>> tasks = new ArrayList<>();
for (int i = 0; i < numberOfPayers; i++) {
for (int j = 0; j < numberOfDoreplacedentsPerPayer; j++) {
LocalDateTime currentTime = LocalDateTime.now();
Doreplacedent doc = new Doreplacedent(String.format("{ " + "'id' : '%s'," + "'site_id': 'ABC', " + "'payer_id': %d, " + " 'created_time' : %d " + "}", UUID.randomUUID().toString(), i, currentTime.getSecond()));
tasks.add(client.createDoreplacedent(getCollectionLink(), doc, null, true).then());
}
}
Flux.merge(tasks).then().block();
System.out.println("finished inserting doreplacedents");
}
@AfterClreplaced(groups = "samples", timeOut = TIMEOUT)
public void shutdown() {
Utils.safeClean(client, createdDatabase);
client.close();
}
/**
* Queries Doreplacedents and performs Group by operation after fetching the Doreplacedents.
* If you want to understand the steps in more details see {@link #groupByInMemory_MoreDetail()}
* @throws Exception
*/
@Test(groups = "samples", timeOut = 2 * TIMEOUT)
public void groupByInMemory() {
// If you want to understand the steps in more details see groupByInMemoryMoreDetail()
int requestPageSize = 3;
FeedOptions options = new FeedOptions();
options.maxItemCount(requestPageSize);
options.enableCrossParreplacedionQuery(true);
Flux<Doreplacedent> doreplacedentsObservable = client.queryDoreplacedents(getCollectionLink(), new SqlQuerySpec("SELECT * FROM root r WHERE r.site_id=@site_id", new SqlParameterList(new SqlParameter("@site_id", "ABC"))), options).flatMap(page -> Flux.fromIterable(page.results()));
final LocalDateTime now = LocalDateTime.now();
List<List<Doreplacedent>> resultsGroupedAsLists = doreplacedentsObservable.filter(doc -> Math.abs(now.getSecond() - doc.getInt("created_time")) <= 90).groupBy(doc -> doc.getInt("payer_id")).flatMap(Flux::collectList).collectList().block();
for (List<Doreplacedent> resultsForEachPayer : resultsGroupedAsLists) {
System.out.println("doreplacedents with payer_id : " + resultsForEachPayer.get(0).getInt("payer_id") + " are " + resultsForEachPayer);
}
}
/**
* This does the same thing as {@link #groupByInMemory_MoreDetail()} but with pedagogical details
* @throws Exception
*/
@Test(groups = "samples", timeOut = 2 * TIMEOUT)
public void groupByInMemory_MoreDetail() {
int requestPageSize = 3;
FeedOptions options = new FeedOptions();
options.maxItemCount(requestPageSize);
options.enableCrossParreplacedionQuery(true);
Flux<Doreplacedent> doreplacedentsObservable = client.queryDoreplacedents(getCollectionLink(), new SqlQuerySpec("SELECT * FROM root r WHERE r.site_id=@site_id", new SqlParameterList(new SqlParameter("@site_id", "ABC"))), options).flatMap(page -> Flux.fromIterable(page.results()));
final LocalDateTime now = LocalDateTime.now();
Flux<GroupedFlux<Integer, Doreplacedent>> groupedByPayerIdObservable = doreplacedentsObservable.filter(doc -> Math.abs(now.getSecond() - doc.getInt("created_time")) <= 90).groupBy(doc -> doc.getInt("payer_id"));
Flux<List<Doreplacedent>> docsGroupedAsList = groupedByPayerIdObservable.flatMap(grouped -> {
Flux<List<Doreplacedent>> list = grouped.collectList().flux();
return list;
});
List<List<Doreplacedent>> resultsGroupedAsLists = docsGroupedAsList.collectList().single().block();
for (List<Doreplacedent> resultsForEachPayer : resultsGroupedAsLists) {
System.out.println("doreplacedents with payer_id : " + resultsForEachPayer.get(0).getInt("payer_id") + " are " + resultsForEachPayer);
}
}
private String getCollectionLink() {
return "dbs/" + createdDatabase.id() + "/colls/" + createdCollection.id();
}
}
19
View Complete Implementation : PjassTests.java
Copyright Apache License 2.0
Author : wurstscript
Copyright Apache License 2.0
Author : wurstscript
@Test
@Ignore
public void test() {
Result result = Pjreplaced.runPjreplaced(new File("./testscripts/invalid/fail.j"));
System.out.println(result.getMessage());
WurstGuiImpl gui = new WurstGuiImpl();
for (CompileError err : result.getErrors()) {
System.out.println(err);
System.out.println(err.getSource().getLeftPos());
gui.sendError(err);
}
}
19
View Complete Implementation : StoredProcedureQueryTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeCLreplaced times out inconsistently
@Ignore
public clreplaced StoredProcedureQueryTest extends TestSuiteBase {
private CosmosContainer createdCollection;
private List<CosmosStoredProcedureProperties> createdStoredProcs = new ArrayList<>();
private CosmosClient client;
@Factory(dataProvider = "clientBuildersWithDirect")
public StoredProcedureQueryTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryWithFilter() throws Exception {
String filterId = createdStoredProcs.get(0).id();
String query = String.format("SELECT * from c where c.id = '%s'", filterId);
FeedOptions options = new FeedOptions();
options.maxItemCount(5);
Flux<FeedResponse<CosmosStoredProcedureProperties>> queryObservable = createdCollection.getScripts().queryStoredProcedures(query, options);
List<CosmosStoredProcedureProperties> expectedDocs = createdStoredProcs.stream().filter(sp -> filterId.equals(sp.id())).collect(Collectors.toList());
replacedertThat(expectedDocs).isNotEmpty();
int expectedPageSize = (expectedDocs.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosStoredProcedureProperties> validator = new FeedResponseListValidator.Builder<CosmosStoredProcedureProperties>().totalSize(expectedDocs.size()).exactlyContainsInAnyOrder(expectedDocs.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).pageSatisfy(0, new FeedResponseValidator.Builder<CosmosStoredProcedureProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator, 10000);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void query_NoResults() throws Exception {
String query = "SELECT * from root r where r.id = '2'";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosStoredProcedureProperties>> queryObservable = createdCollection.getScripts().queryStoredProcedures(query, options);
FeedResponseListValidator<CosmosStoredProcedureProperties> validator = new FeedResponseListValidator.Builder<CosmosStoredProcedureProperties>().containsExactly(new ArrayList<>()).numberOfPages(1).pageSatisfy(0, new FeedResponseValidator.Builder<CosmosStoredProcedureProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryAll() throws Exception {
String query = "SELECT * from root";
FeedOptions options = new FeedOptions();
options.maxItemCount(3);
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosStoredProcedureProperties>> queryObservable = createdCollection.getScripts().queryStoredProcedures(query, options);
List<CosmosStoredProcedureProperties> expectedDocs = createdStoredProcs;
int expectedPageSize = (expectedDocs.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosStoredProcedureProperties> validator = new FeedResponseListValidator.Builder<CosmosStoredProcedureProperties>().exactlyContainsInAnyOrder(expectedDocs.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).allPagesSatisfy(new FeedResponseValidator.Builder<CosmosStoredProcedureProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void invalidQuerySytax() throws Exception {
String query = "I am an invalid query";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosStoredProcedureProperties>> queryObservable = createdCollection.getScripts().queryStoredProcedures(query, options);
FailureValidator validator = new FailureValidator.Builder().instanceOf(CosmosClientException.clreplaced).statusCode(400).notNullActivityId().build();
validateQueryFailure(queryObservable, validator);
}
public CosmosStoredProcedureProperties createStoredProc(CosmosContainer cosmosContainer) {
CosmosStoredProcedureProperties storedProcedure = getStoredProcedureDef();
return cosmosContainer.getScripts().createStoredProcedure(storedProcedure).block().properties();
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() throws Exception {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
for (int i = 0; i < 5; i++) {
createdStoredProcs.add(createStoredProc(createdCollection));
}
waitIfNeededForReplicasToCatchUp(clientBuilder());
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
private static CosmosStoredProcedureProperties getStoredProcedureDef() {
CosmosStoredProcedureProperties storedProcedureDef = new CosmosStoredProcedureProperties();
storedProcedureDef.id(UUID.randomUUID().toString());
storedProcedureDef.body("function() {var x = 10;}");
return storedProcedureDef;
}
}
19
View Complete Implementation : IgnoreClassParentSample.java
Copyright Apache License 2.0
Author : cbeust
Copyright Apache License 2.0
Author : cbeust
@Ignore
public clreplaced IgnoreClreplacedParentSample {
@Test
public void parentTest() {
}
}
19
View Complete Implementation : ReadFeedStoredProceduresTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeClreplaced times out inconsistently
@Ignore
public clreplaced ReadFeedStoredProceduresTest extends TestSuiteBase {
private CosmosContainer createdCollection;
private List<CosmosStoredProcedureProperties> createdStoredProcedures = new ArrayList<>();
private CosmosClient client;
@Factory(dataProvider = "clientBuildersWithDirect")
public ReadFeedStoredProceduresTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = FEED_TIMEOUT)
public void readStoredProcedures() throws Exception {
FeedOptions options = new FeedOptions();
options.maxItemCount(2);
Flux<FeedResponse<CosmosStoredProcedureProperties>> feedObservable = createdCollection.getScripts().readAllStoredProcedures(options);
int expectedPageSize = (createdStoredProcedures.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosStoredProcedureProperties> validator = new FeedResponseListValidator.Builder<CosmosStoredProcedureProperties>().totalSize(createdStoredProcedures.size()).exactlyContainsInAnyOrder(createdStoredProcedures.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).allPagesSatisfy(new FeedResponseValidator.Builder<CosmosStoredProcedureProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(feedObservable, validator, FEED_TIMEOUT);
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
for (int i = 0; i < 5; i++) {
createdStoredProcedures.add(createStoredProcedures(createdCollection));
}
waitIfNeededForReplicasToCatchUp(clientBuilder());
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
public CosmosStoredProcedureProperties createStoredProcedures(CosmosContainer cosmosContainer) {
CosmosStoredProcedureProperties sproc = new CosmosStoredProcedureProperties();
sproc.id(UUID.randomUUID().toString());
sproc.body("function() {var x = 10;}");
return cosmosContainer.getScripts().createStoredProcedure(sproc, new CosmosStoredProcedureRequestOptions()).block().properties();
}
}
19
View Complete Implementation : IgnoreTestSample.java
Copyright Apache License 2.0
Author : cbeust
Copyright Apache License 2.0
Author : cbeust
@Test
@Ignore
public void ignoredTest() {
}
19
View Complete Implementation : TriggerUpsertReplaceTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeClreplaced times out inconsistently
@Ignore
public clreplaced TriggerUpsertReplaceTest extends TestSuiteBase {
private CosmosContainer createdCollection;
private CosmosClient client;
@Factory(dataProvider = "clientBuildersWithDirect")
public TriggerUpsertReplaceTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void replaceTrigger() throws Exception {
// create a trigger
CosmosTriggerProperties trigger = new CosmosTriggerProperties();
trigger.id(UUID.randomUUID().toString());
trigger.body("function() {var x = 10;}");
trigger.triggerOperation(TriggerOperation.CREATE);
trigger.triggerType(TriggerType.PRE);
CosmosTriggerProperties readBackTrigger = createdCollection.getScripts().createTrigger(trigger).block().properties();
// read trigger to validate creation
waitIfNeededForReplicasToCatchUp(clientBuilder());
Mono<CosmosTriggerResponse> readObservable = createdCollection.getScripts().getTrigger(readBackTrigger.id()).read();
// validate trigger creation
CosmosResponseValidator<CosmosTriggerResponse> validatorForRead = new CosmosResponseValidator.Builder<CosmosTriggerResponse>().withId(readBackTrigger.id()).withTriggerBody("function() {var x = 10;}").withTriggerInternals(TriggerType.PRE, TriggerOperation.CREATE).notNullEtag().build();
validateSuccess(readObservable, validatorForRead);
// update trigger
readBackTrigger.body("function() {var x = 11;}");
Mono<CosmosTriggerResponse> updateObservable = createdCollection.getScripts().getTrigger(readBackTrigger.id()).replace(readBackTrigger);
// validate trigger replace
CosmosResponseValidator<CosmosTriggerResponse> validatorForUpdate = new CosmosResponseValidator.Builder<CosmosTriggerResponse>().withId(readBackTrigger.id()).withTriggerBody("function() {var x = 11;}").withTriggerInternals(TriggerType.PRE, TriggerOperation.CREATE).notNullEtag().build();
validateSuccess(updateObservable, validatorForUpdate);
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
}
19
View Complete Implementation : TestChannelsFromEvents.java
Copyright Apache License 2.0
Author : princesslana
Copyright Apache License 2.0
Author : princesslana
@Ignore
private <T> void replacedertObserver(TestObserver<T> observer) {
observer.replacedertNoErrors();
observer.replacedertComplete();
observer.replacedertNoValues();
}
19
View Complete Implementation : ReadFeedUdfsTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeClreplaced times out.
@Ignore
public clreplaced ReadFeedUdfsTest extends TestSuiteBase {
private Database createdDatabase;
private CosmosContainer createdCollection;
private List<CosmosUserDefinedFunctionProperties> createdUserDefinedFunctions = new ArrayList<>();
private CosmosClient client;
@Factory(dataProvider = "clientBuildersWithDirect")
public ReadFeedUdfsTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = FEED_TIMEOUT)
public void readUserDefinedFunctions() throws Exception {
FeedOptions options = new FeedOptions();
options.maxItemCount(2);
Flux<FeedResponse<CosmosUserDefinedFunctionProperties>> feedObservable = createdCollection.getScripts().readAllUserDefinedFunctions(options);
int expectedPageSize = (createdUserDefinedFunctions.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<CosmosUserDefinedFunctionProperties> validator = new FeedResponseListValidator.Builder<CosmosUserDefinedFunctionProperties>().totalSize(createdUserDefinedFunctions.size()).exactlyContainsInAnyOrder(createdUserDefinedFunctions.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).allPagesSatisfy(new FeedResponseValidator.Builder<CosmosUserDefinedFunctionProperties>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(feedObservable, validator, FEED_TIMEOUT);
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
for (int i = 0; i < 5; i++) {
createdUserDefinedFunctions.add(createUserDefinedFunctions(createdCollection));
}
waitIfNeededForReplicasToCatchUp(clientBuilder());
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
public CosmosUserDefinedFunctionProperties createUserDefinedFunctions(CosmosContainer cosmosContainer) {
CosmosUserDefinedFunctionProperties udf = new CosmosUserDefinedFunctionProperties();
udf.id(UUID.randomUUID().toString());
udf.body("function() {var x = 10;}");
return cosmosContainer.getScripts().createUserDefinedFunction(udf).block().properties();
}
private String getCollectionLink() {
return "dbs/" + getDatabaseId() + "/colls/" + getCollectionId();
}
private String getCollectionId() {
return createdCollection.id();
}
private String getDatabaseId() {
return createdDatabase.id();
}
}
19
View Complete Implementation : NumberIndexTests.java
Copyright Apache License 2.0
Author : TIBCOSoftware
Copyright Apache License 2.0
Author : TIBCOSoftware
/**
* Copyright 2018 TIBCO Software Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except
* in compliance with the License.
* A copy of the License is included in the distribution package with this file.
* You also 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.
*/
/**
* CRUD tests for number data type index
*/
@Ignore
public clreplaced NumberIndexTests extends LifecycleServer {
Object[][] data;
public NumberIndexTests() throws IOException, EvalError {
this.data = this.getNumberData();
}
/**
* *********************
*
* Test Cases
*
* **********************
*/
/**
* testCreateNumberData - Insert nodes with number index
* @throws Exception
*/
@Test(description = "Insert nodes with number index")
public void testCreateNumberData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
TGGraphMetadata gmd = conn.getGraphMetadata(true);
TGNodeType nodeNumberIdxType = gmd.getNodeType("nodeNumberIdx");
if (nodeNumberIdxType == null)
throw new Exception("Node type not found");
List<TGNode> nodes = new ArrayList<TGNode>();
for (int i = 0; i < data.length; i++) {
TGNode node = gof.createNode(nodeNumberIdxType);
node.setAttribute("numberAttr", data[i][0]);
node.setAttribute("key", i);
nodes.add(node);
conn.insertEnreplacedy(node);
}
conn.commit();
conn.disconnect();
}
/**
* testReadNumberData - Retrieve nodes with number index
* @throws Exception
*/
@Test(description = "Retrieve nodes with number index", dependsOnMethods = { "testCreateNumberData" })
public void testReadNumberData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeNumberIdx");
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// System.out.println("READ ATTR :" + data[i][0]);
// replacedert on Node attribute
if (data[i][0] != null)
replacedert.replacedertEquals(((BigDecimal) enreplacedy.getAttribute("numberAttr").getValue()).compareTo((BigDecimal) data[i][0]), 0, "Actual and Expected BigDecimal are not the same");
else
replacedert.replacedertEquals(enreplacedy.getAttribute("numberAttr").getValue(), data[i][0]);
}
conn.disconnect();
}
/**
* testUpdateNumberData - Update number index
* @throws Exception
*/
@Test(description = "Update number index", dependsOnMethods = { "testReadNumberData" }, enabled = false)
public void testUpdateNumberData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeNumberIdx");
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
enreplacedy.setAttribute("numberAttr", data[i][1]);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadUpdatedNumberData - Retrieve nodes with updated number index
* @throws Exception
*/
@Test(description = "Retrieve nodes with updated number index", dependsOnMethods = { "testUpdateNumberData" }, enabled = false)
public void testReadUpdatedNumberData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeNumberIdx");
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// replacedert on Node attribute
if (data[i][1] != null)
replacedert.replacedertEquals(((BigDecimal) enreplacedy.getAttribute("numberAttr").getValue()).compareTo((BigDecimal) data[i][1]), 0, "Actual and Expected BigDecimal are not the same");
else
replacedert.replacedertEquals(enreplacedy.getAttribute("numberAttr").getValue(), data[i][1]);
}
conn.disconnect();
}
/**
* testDeleteNumberData - Delete number index
* @throws Exception
*/
@Test(description = "Delete number index", dependsOnMethods = { "testReadUpdatedNumberData" }, enabled = false)
public void testDeleteNumberData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeNumberIdx");
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", 0);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// delete the boolean value
enreplacedy.setAttribute("numberAttr", null);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadDeletedNumberData - Retrieve nodes with deleted number index
* @throws Exception
*/
@Test(description = "Retrieve nodes with deleted number index", dependsOnMethods = { "testDeleteNumberData" }, enabled = false)
public void testReadDeletedNumberData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeNumberIdx");
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", 0);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// replacedert on Node attribute
replacedert.replacedertTrue(enreplacedy.getAttribute("numberAttr").isNull(), "Expected attribute #" + i + " null but found it non null -");
}
conn.disconnect();
}
/**
* *********************
*
* Data Providers
*
* **********************
*/
/**
* Provide a set of number data
* @return Object[][] of data
* @throws IOException
* @throws EvalError
*/
@DataProvider(name = "NumberData")
public Object[][] getNumberData() throws IOException, EvalError {
Object[][] data = PipedData.read(this.getClreplaced().getResourcereplacedtream("/" + this.getClreplaced().getPackage().getName().replace('.', '/') + "/number.data"));
return data;
}
}
19
View Complete Implementation : UserDefinedFunctionUpsertReplaceTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME beforeClreplaced times out inconsistently.
@Ignore
public clreplaced UserDefinedFunctionUpsertReplaceTest extends TestSuiteBase {
private CosmosContainer createdCollection;
private CosmosClient client;
@Factory(dataProvider = "clientBuildersWithDirect")
public UserDefinedFunctionUpsertReplaceTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void replaceUserDefinedFunction() throws Exception {
// create a udf
CosmosUserDefinedFunctionProperties udf = new CosmosUserDefinedFunctionProperties();
udf.id(UUID.randomUUID().toString());
udf.body("function() {var x = 10;}");
CosmosUserDefinedFunctionProperties readBackUdf = null;
readBackUdf = createdCollection.getScripts().createUserDefinedFunction(udf).block().properties();
// read udf to validate creation
waitIfNeededForReplicasToCatchUp(clientBuilder());
Mono<CosmosUserDefinedFunctionResponse> readObservable = createdCollection.getScripts().getUserDefinedFunction(readBackUdf.id()).read();
// validate udf creation
CosmosResponseValidator<CosmosUserDefinedFunctionResponse> validatorForRead = new CosmosResponseValidator.Builder<CosmosUserDefinedFunctionResponse>().withId(readBackUdf.id()).withUserDefinedFunctionBody("function() {var x = 10;}").notNullEtag().build();
validateSuccess(readObservable, validatorForRead);
// update udf
readBackUdf.body("function() {var x = 11;}");
Mono<CosmosUserDefinedFunctionResponse> replaceObservable = createdCollection.getScripts().getUserDefinedFunction(readBackUdf.id()).replace(readBackUdf);
// validate udf replace
CosmosResponseValidator<CosmosUserDefinedFunctionResponse> validatorForReplace = new CosmosResponseValidator.Builder<CosmosUserDefinedFunctionResponse>().withId(readBackUdf.id()).withUserDefinedFunctionBody("function() {var x = 11;}").notNullEtag().build();
validateSuccess(replaceObservable, validatorForReplace);
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() {
client = clientBuilder().build();
createdCollection = getSharedMultiParreplacedionCosmosContainer(client);
truncateCollection(createdCollection);
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeClose(client);
}
}
19
View Complete Implementation : TimestampIndexTests.java
Copyright Apache License 2.0
Author : TIBCOSoftware
Copyright Apache License 2.0
Author : TIBCOSoftware
/**
* Copyright 2018 TIBCO Software Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except
* in compliance with the License.
* A copy of the License is included in the distribution package with this file.
* You also 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.
*/
/**
* CRUD tests for timestamp data type index
*/
@Ignore
public clreplaced TimestampIndexTests extends LifecycleServer {
Object[][] data;
public TimestampIndexTests() throws IOException, EvalError {
this.data = this.getTimestampData();
}
/**
* *********************
*
* Test Cases
*
* **********************
*/
/**
* testCreateTimestampData - Insert nodes with timestamp index
* @throws Exception
*/
@Test(description = "Insert nodes with timestamp index")
public void testCreateTimestampData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
TGGraphMetadata gmd = conn.getGraphMetadata(true);
TGNodeType nodeTimestampIdxType = gmd.getNodeType("nodeTimestampIdx");
if (nodeTimestampIdxType == null)
throw new Exception("Node type not found");
// Object[][] data = this.getTimestampData();
List<TGNode> nodes = new ArrayList<TGNode>();
for (int i = 0; i < data.length; i++) {
// System.out.println("CREATE ATTR:" + data[i][0]);
TGNode node = gof.createNode(nodeTimestampIdxType);
node.setAttribute("timestampAttr", data[i][0]);
node.setAttribute("key", i);
nodes.add(node);
conn.insertEnreplacedy(node);
}
conn.commit();
conn.disconnect();
}
/**
* testReadTimestampData - Retrieve nodes and edge with timestamp index
* @throws Exception
*/
@Test(description = "Retrieve nodes and edge with timestamp index", dependsOnMethods = { "testCreateTimestampData" })
public void testReadTimestampData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimestampIdx");
// Object[][] data = this.getTimestampData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// System.out.println("READ ATTR:" + enreplacedy.getAttribute("timestampAttr").getValue());
// replacedert on Node attribute
replacedert.replacedertEquals(enreplacedy.getAttribute("timestampAttr").getValue(), data[i][0]);
}
conn.disconnect();
}
/**
* testUpdateTimestampData - Update timestamp index
* @throws Exception
*/
@Test(description = "Update timestamp index", dependsOnMethods = { "testReadTimestampData" }, enabled = false)
public void testUpdateTimestampData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimestampIdx");
// Object[][] data = this.getTimestampData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// System.out.println("UPDATE ATTR:" + data[i][1] + " - Length:" + ((Timestamp) data[i][1]).length());
enreplacedy.setAttribute("timestampAttr", data[i][1]);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadUpdatedTimestampData - Retrieve nodes with updated timestamp index
* @throws Exception
*/
@Test(description = "Retrieve nodes with updated timestamp index", dependsOnMethods = { "testUpdateTimestampData" }, enabled = false)
public void testReadUpdatedTimestampData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimestampIdx");
// Object[][] data = this.getTimestampData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// System.out.println("READ UPDATED ATTR:" + enreplacedy.getAttribute("timestampAttr").getValue());
// replacedert on Node attribute
// replacedert.replacedertFalse(enreplacedy.getAttribute("timestampAttr").isNull(), "Expected attribute #"+i+" non null but found it null -");
replacedert.replacedertEquals(enreplacedy.getAttribute("timestampAttr").getValue(), data[i][1]);
}
conn.disconnect();
}
/**
* testDeleteTimestampData - Delete timestamp index
* @throws Exception
*/
@Test(description = "Delete timestamp index", dependsOnMethods = { "testReadUpdatedTimestampData" }, enabled = false)
public void testDeleteTimestampData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimestampIdx");
// Object[][] data = this.getTimestampData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
if (enreplacedy == null) {
throw new org.testng.TestException("TG enreplacedy #" + i + " was not retrieved");
}
// delete the timestamp value by setting it up to null
enreplacedy.setAttribute("timestampAttr", null);
conn.updateEnreplacedy(enreplacedy);
conn.commit();
}
conn.disconnect();
}
/**
* testReadDeletedTimestampData - Retrieve nodes with deleted timestamp index
* @throws Exception
*/
@Test(description = "Retrieve nodes with deleted timestamp index", dependsOnMethods = { "testDeleteTimestampData" }, enabled = false)
public void testReadDeletedTimestampData() throws Exception {
TGConnection conn = TGConnectionFactory.getInstance().createConnection(tgUrl, tgUser, tgPwd, null);
conn.connect();
TGGraphObjectFactory gof = conn.getGraphObjectFactory();
if (gof == null) {
throw new org.testng.TestException("TG object factory is null");
}
conn.getGraphMetadata(true);
TGKey tgKey = gof.createCompositeKey("nodeTimestampIdx");
// Object[][] data = this.getTimestampData();
for (int i = 0; i < data.length; i++) {
tgKey.setAttribute("key", i);
TGEnreplacedy enreplacedy = conn.getEnreplacedy(tgKey, null);
// replacedert on Node attribute
replacedert.replacedertTrue(enreplacedy.getAttribute("timestampAttr").isNull(), "Expected attribute #" + i + " null but found it non null -");
}
conn.disconnect();
}
/**
* *********************
*
* Data Providers
*
* **********************
*/
/**
* Provide a set of timestamp data
* @return Object[][] of data
* @throws IOException
* @throws EvalError
*/
@DataProvider(name = "TimestampData")
public Object[][] getTimestampData() throws IOException, EvalError {
Object[][] data = PipedData.read(this.getClreplaced().getResourcereplacedtream("/" + this.getClreplaced().getPackage().getName().replace('.', '/') + "/timestamp.data"));
return data;
}
}
19
View Complete Implementation : SessionTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME: Test flakes inconsistently with replacedertion error
@Ignore
@Test(groups = { "simple" }, timeOut = TIMEOUT, dataProvider = "sessionTestArgProvider")
public void sessionConsistency_ReadYourWrites(boolean isNameBased) {
spyClient.readCollection(getCollectionLink(isNameBased), null).blockFirst();
spyClient.createDoreplacedent(getCollectionLink(isNameBased), new Doreplacedent(), null, false).blockFirst();
spyClient.clearCapturedRequests();
for (int i = 0; i < 10; i++) {
Doreplacedent doreplacedentCreated = spyClient.createDoreplacedent(getCollectionLink(isNameBased), new Doreplacedent(), null, false).blockFirst().getResource();
spyClient.clearCapturedRequests();
spyClient.readDoreplacedent(getDoreplacedentLink(doreplacedentCreated, isNameBased), options).blockFirst();
replacedertThat(getSessionTokensInRequests()).hreplacedize(1);
replacedertThat(getSessionTokensInRequests().get(0)).isNotEmpty();
spyClient.readDoreplacedent(getDoreplacedentLink(doreplacedentCreated, isNameBased), options).blockFirst();
replacedertThat(getSessionTokensInRequests()).hreplacedize(2);
replacedertThat(getSessionTokensInRequests().get(1)).isNotEmpty();
}
}
19
View Complete Implementation : GenericsWithTypeclassesTests.java
Copyright Apache License 2.0
Author : wurstscript
Copyright Apache License 2.0
Author : wurstscript
@Test
@Ignore
public void genericForFrom() {
testreplacedertOkLines(true, "package test", "native testSuccess()", "clreplaced C<T:>", " function iterator() returns Iterator<T>", " return new Iterator<T>()", "clreplaced Iterator<T:>", " private int i = 0", " function next() returns T", " i = i + 1", " return i castTo T", " function hasNext() returns boolean", " return i < 10", "init", " let c = new C<int>", " let iter = c.iterator()", " for i from iter", " if i == 5", " testSuccess()");
}
19
View Complete Implementation : ConflictAPITest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
/**
* This integration test clreplaced demonstrates how to use Async API for
* Conflicts.
* <p>
* Also if you need to work with Future or CompletableFuture it is possible to
* transform a flux to CompletableFuture. Please see
* {@link #transformObservableToCompletableFuture()}
*/
// FIXME: setup method times out inconsistently
@Ignore
public clreplaced ConflictAPITest extends DoreplacedentClientTest {
private final static int TIMEOUT = 60000;
private AsyncDoreplacedentClient client;
private DoreplacedentCollection createdCollection;
private Database createdDatabase;
@BeforeClreplaced(groups = "samples", timeOut = TIMEOUT)
public void setUp() {
ConnectionPolicy connectionPolicy = new ConnectionPolicy().connectionMode(ConnectionMode.DIRECT);
this.clientBuilder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.SESSION);
this.client = this.clientBuilder().build();
DoreplacedentCollection collectionDefinition = new DoreplacedentCollection();
collectionDefinition.id(UUID.randomUUID().toString());
ParreplacedionKeyDefinition parreplacedionKeyDef = new ParreplacedionKeyDefinition();
ArrayList<String> paths = new ArrayList<String>();
paths.add("/mypk");
parreplacedionKeyDef.paths(paths);
collectionDefinition.setParreplacedionKey(parreplacedionKeyDef);
// CREATE database
createdDatabase = Utils.createDatabaseForTest(client);
// CREATE collection
createdCollection = client.createCollection("/dbs/" + createdDatabase.id(), collectionDefinition, null).single().block().getResource();
int numberOfDoreplacedents = 20;
// Add doreplacedents
List<Mono<Void>> tasks = new ArrayList<>();
for (int i = 0; i < numberOfDoreplacedents; i++) {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'loc%d', 'counter': %d}", i, i));
tasks.add(client.createDoreplacedent(getCollectionLink(), doc, null, true).then());
}
Flux.merge(tasks).then().block();
}
@AfterClreplaced(groups = "samples", timeOut = TIMEOUT)
public void shutdown() {
Utils.safeClean(client, createdDatabase);
Utils.safeClose(client);
}
/**
* READ conflicts
* Converts the conflict read feed observable to blocking observable and
* uses that to find all conflicts
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void readConflicts_toBlocking_toIterator() {
// read all conflicts
int requestPageSize = 3;
FeedOptions options = new FeedOptions();
options.maxItemCount(requestPageSize);
Flux<FeedResponse<Conflict>> conflictReadFeedObservable = client.readConflicts(getCollectionLink(), options);
// Covert the flux to an iterable, and then to iterator
Iterator<FeedResponse<Conflict>> it = conflictReadFeedObservable.toIterable().iterator();
int expectedNumberOfConflicts = 0;
int numberOfResults = 0;
while (it.hasNext()) {
FeedResponse<Conflict> page = it.next();
System.out.println("items: " + page.results());
String pageSizereplacedtring = page.responseHeaders().get(HttpConstants.HttpHeaders.ITEM_COUNT);
replacedertThat("header item count must be present", pageSizereplacedtring, notNullValue());
int pageSize = Integer.valueOf(pageSizereplacedtring);
replacedertThat("Result size must match header item count", page.results(), hreplacedize(pageSize));
numberOfResults += pageSize;
}
replacedertThat("number of total results", numberOfResults, equalTo(expectedNumberOfConflicts));
}
/**
* You can convert a Flux to a CompletableFuture.
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void transformObservableToCompletableFuture() throws Exception {
int requestPageSize = 3;
FeedOptions options = new FeedOptions();
options.maxItemCount(requestPageSize);
Flux<FeedResponse<Conflict>> conflictReadFeedObservable = client.readConflicts(getCollectionLink(), options);
// Convert to observable of list of pages
Mono<List<FeedResponse<Conflict>>> allPagesObservable = conflictReadFeedObservable.collectList();
// Convert the observable of list of pages to a Future
CompletableFuture<List<FeedResponse<Conflict>>> future = allPagesObservable.toFuture();
List<FeedResponse<Conflict>> pageList = future.get();
int totalNumberOfRetrievedConflicts = 0;
for (FeedResponse<Conflict> page : pageList) {
totalNumberOfRetrievedConflicts += page.results().size();
}
replacedertThat(0, equalTo(totalNumberOfRetrievedConflicts));
}
private String getCollectionLink() {
return "dbs/" + createdDatabase.id() + "/colls/" + createdCollection.id();
}
}
19
View Complete Implementation : ResourceTokenTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
/**
* This clreplaced try to test different scenario related to fetching various
* resources from resource token directly or via permission feed .
*/
// TODO: change to use external TestSuiteBase
@Ignore
public clreplaced ResourceTokenTest extends TestSuiteBase {
public final String databaseId = DatabaseForTest.generateId();
private Database createdDatabase;
private DoreplacedentCollection createdCollection;
private DoreplacedentCollection createdCollectionWithParreplacedionKey;
private Doreplacedent createdDoreplacedent;
private Doreplacedent createdDoreplacedentWithParreplacedionKey;
private Doreplacedent createdDoreplacedentWithParreplacedionKey2;
private User createdUser;
private Permission createdCollPermission;
private Permission createdCollPermissionWithName;
private Permission createdDocPermission;
private Permission createdDocPermissionWithName;
private Permission createdDocPermissionWithParreplacedionKey;
private Permission createdDocPermissionWithParreplacedionKeyWithName;
private Permission createdDocPermissionWithParreplacedionKey2;
private Permission createdDocPermissionWithParreplacedionKey2WithName;
private Permission createdColPermissionWithParreplacedionKey;
private Permission createdColPermissionWithParreplacedionKeyWithName;
private Permission createdColPermissionWithParreplacedionKey2;
private Permission createdColPermissionWithParreplacedionKey2WithName;
private AsyncDoreplacedentClient client;
// ALL static string used in below test cases
private final static String DOreplacedENT_DEFINITION = "{ 'id': 'doc%d', 'counter': '%d'}";
private final static String DOreplacedENT_DEFINITION_WITH_PERMISSION_KEY = "{ " + "\"id\": \"%s\", " + "\"mypk\": \"%s\", " + "\"sgmts\": [[6519456, 1471916863], [2498434, 1455671440]]" + "}";
private final static String PARreplacedION_KEY_PATH_1 = "/mypk";
private final static String PARreplacedION_KEY_PATH_2 = "/mypk2";
private static final String PARreplacedION_KEY_VALUE = "1";
private static final String PARreplacedION_KEY_VALUE_2 = "2";
private static final String PERMISSION_DEFINITION = "{" + " 'id': 'PermissionForDocWithParreplacedionKey'," + " 'permissionMode': 'read'," + " 'resource': '%s'," + " 'resourceParreplacedionKey': ['%s']" + "}";
private static final String COLLECTION_PERMISSION_DEFINITION = "{" + " 'id': 'PermissionForColWithParreplacedionKey'," + " 'permissionMode': 'read'," + " 'resource': '%s'," + " 'resourceParreplacedionKey': ['%s']" + "}";
private static final String USER_NAME = "TestUser";
private static final String PERMISSION_FOR_COLL = "PermissionForColl";
private static final String PERMISSION_FOR_COLL_WITH_NAME = "PermissionForCollWithName";
private static final String PERMISSION_FOR_DOC = "PermissionForDoc";
private static final String PERMISSION_FOR_DOC_WITH_NAME = "PermissionForDocWithName";
@Factory(dataProvider = "clientBuilders")
public ResourceTokenTest(AsyncDoreplacedentClient.Builder clientBuilder) {
super(clientBuilder);
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() throws Exception {
client = clientBuilder().build();
Database d = new Database();
d.id(databaseId);
createdDatabase = createDatabase(client, d);
// CREATE collection
createdCollection = createCollection(client, createdDatabase.id(), getCollectionDefinitionWithParreplacedionKey(PARreplacedION_KEY_PATH_2));
// CREATE doreplacedent
createdDoreplacedent = createDoreplacedent(client, createdDatabase.id(), createdCollection.id(), getDoreplacedent());
// CREATE collection with parreplacedion key
createdCollectionWithParreplacedionKey = createCollection(client, createdDatabase.id(), getCollectionDefinitionWithParreplacedionKey(PARreplacedION_KEY_PATH_1));
// CREATE doreplacedent with parreplacedion key
createdDoreplacedentWithParreplacedionKey = createDoreplacedent(client, createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), getDoreplacedentDefinitionWithParreplacedionKey());
// CREATE second doreplacedent with parreplacedion key
createdDoreplacedentWithParreplacedionKey2 = createDoreplacedent(client, createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), getDoreplacedentDefinitionWithParreplacedionKey2());
// CREATE user
createdUser = createUser(client, createdDatabase.id(), getUserDefinition());
// CREATE permission for collection
createdCollPermission = client.createPermission(getUserLink(), getCollPermission(), null).single().block().getResource();
createdCollPermissionWithName = client.createPermission(getUserLink(), getCollPermissionWithName(), null).single().block().getResource();
// CREATE permission for doreplacedent
createdDocPermission = client.createPermission(getUserLink(), getDocPermission(), null).single().block().getResource();
createdDocPermissionWithName = client.createPermission(getUserLink(), getDocPermissionWithName(), null).single().block().getResource();
// CREATE permission for doreplacedent with parreplacedion key
createdDocPermissionWithParreplacedionKey = client.createPermission(getUserLink(), getDocPermissionWithParreplacedionKey(), null).single().block().getResource();
createdDocPermissionWithParreplacedionKeyWithName = client.createPermission(getUserLink(), getDocPermissionWithParreplacedionKeyWithName(), null).single().block().getResource();
// CREATE permission for doreplacedent with parreplacedion key 2
createdDocPermissionWithParreplacedionKey2 = client.createPermission(getUserLink(), getDocPermissionWithParreplacedionKey2(), null).single().block().getResource();
createdDocPermissionWithParreplacedionKey2WithName = client.createPermission(getUserLink(), getDocPermissionWithParreplacedionKey2WithName(), null).single().block().getResource();
// CREATE permission for collection with parreplacedion key
createdColPermissionWithParreplacedionKey = client.createPermission(getUserLink(), getColPermissionWithParreplacedionKey(), null).single().block().getResource();
createdColPermissionWithParreplacedionKeyWithName = client.createPermission(getUserLink(), getColPermissionWithParreplacedionKeyWithName(), null).single().block().getResource();
// CREATE permission for collection with parreplacedion key
createdColPermissionWithParreplacedionKey2 = client.createPermission(getUserLink(), getColPermissionWithParreplacedionKey2(), null).single().block().getResource();
createdColPermissionWithParreplacedionKey2WithName = client.createPermission(getUserLink(), getColPermissionWithParreplacedionKey2WithName(), null).single().block().getResource();
}
@DataProvider(name = "collectionAndPermissionData")
public Object[][] collectionAndPermissionData() {
return new Object[][] { // This test will try to read collection from its own permission and validate it, both with request Id and name.
{ createdCollection.selfLink(), createdCollPermission }, { TestUtils.getCollectionNameLink(createdDatabase.id(), createdCollection.id()), createdDocPermissionWithName } };
}
@DataProvider(name = "doreplacedentAndPermissionData")
public Object[][] doreplacedentAndPermissionData() {
return new Object[][] { // These tests will try to read doreplacedent from its own permission and validate it, both with request Id and name.
{ createdDoreplacedent.selfLink(), createdDocPermission, createdDoreplacedent.id(), null }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollection.id(), createdDoreplacedent.id()), createdDocPermissionWithName, createdDoreplacedent.id(), null }, // These tests will try to read doreplacedent from its permission having parreplacedion key 1 and validate it, both with request Id and name.
{ createdDoreplacedentWithParreplacedionKey.selfLink(), createdDocPermissionWithParreplacedionKey, createdDoreplacedentWithParreplacedionKey.id(), PARreplacedION_KEY_VALUE }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey.id()), createdDocPermissionWithParreplacedionKeyWithName, createdDoreplacedentWithParreplacedionKey.id(), PARreplacedION_KEY_VALUE }, // These tests will try to read doreplacedent from its permission having parreplacedion key 2 and validate it, both with request Id and name.
{ createdDoreplacedentWithParreplacedionKey2.selfLink(), createdDocPermissionWithParreplacedionKey2, createdDoreplacedentWithParreplacedionKey2.id(), PARreplacedION_KEY_VALUE_2 }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey2.id()), createdDocPermissionWithParreplacedionKey2WithName, createdDoreplacedentWithParreplacedionKey2.id(), PARreplacedION_KEY_VALUE_2 }, // These tests will try to read doreplacedent from its parent collection permission and validate it, both with request Id and name.
{ createdDoreplacedent.selfLink(), createdCollPermission, createdDoreplacedent.id(), null }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollection.id(), createdDoreplacedent.id()), createdCollPermissionWithName, createdDoreplacedent.id(), null }, // This test will try to read doreplacedent from collection permission having parreplacedion key 1 and validate it, both with request Id and name.
{ createdDoreplacedentWithParreplacedionKey.selfLink(), createdColPermissionWithParreplacedionKey, createdDoreplacedentWithParreplacedionKey.id(), PARreplacedION_KEY_VALUE }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey.id()), createdColPermissionWithParreplacedionKeyWithName, createdDoreplacedentWithParreplacedionKey.id(), PARreplacedION_KEY_VALUE }, // This test will try to read doreplacedent from collection permission having parreplacedion key 2 and validate it, both with request Id and name.
{ createdDoreplacedentWithParreplacedionKey2.selfLink(), createdColPermissionWithParreplacedionKey2, createdDoreplacedentWithParreplacedionKey2.id(), PARreplacedION_KEY_VALUE_2 }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey2.id()), createdColPermissionWithParreplacedionKey2WithName, createdDoreplacedentWithParreplacedionKey2.id(), PARreplacedION_KEY_VALUE_2 } };
}
@DataProvider(name = "doreplacedentAndPermissionDataForResourceNotFound")
public Object[][] doreplacedentAndPermissionDataForResourceNotFound() {
return new Object[][] { // This test will try to read doreplacedent from its resource token directly and validate it.
{ createdDoreplacedentWithParreplacedionKey2.selfLink(), createdColPermissionWithParreplacedionKey, PARreplacedION_KEY_VALUE }, // This test will try to read doreplacedent from its parent collection resource token directly and validate it.
{ TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey2.id()), createdColPermissionWithParreplacedionKeyWithName, PARreplacedION_KEY_VALUE } };
}
@DataProvider(name = "doreplacedentAndMultipleCollPermissionData")
public Object[][] doreplacedentAndMultipleCollPermissionData() {
return new Object[][] { // These tests will try to read doreplacedent from parreplacedion 1 with two collection permissions having different parreplacedion keys and validate it, both with request Id and name.
{ createdDoreplacedentWithParreplacedionKey.selfLink(), createdColPermissionWithParreplacedionKey, createdColPermissionWithParreplacedionKey2, createdDoreplacedentWithParreplacedionKey.id(), PARreplacedION_KEY_VALUE }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey.id()), createdColPermissionWithParreplacedionKeyWithName, createdColPermissionWithParreplacedionKey2WithName, createdDoreplacedentWithParreplacedionKey.id(), PARreplacedION_KEY_VALUE }, // These tests will try to read doreplacedent from parreplacedion 1 with two collection permissions having different parreplacedion keys and validate it, both with request Id and name.
{ createdDoreplacedentWithParreplacedionKey2.selfLink(), createdColPermissionWithParreplacedionKey, createdColPermissionWithParreplacedionKey2, createdDoreplacedentWithParreplacedionKey2.id(), PARreplacedION_KEY_VALUE_2 }, { TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey2.id()), createdColPermissionWithParreplacedionKeyWithName, createdColPermissionWithParreplacedionKey2WithName, createdDoreplacedentWithParreplacedionKey2.id(), PARreplacedION_KEY_VALUE_2 } };
}
@DataProvider(name = "resourceToken")
public Object[][] resourceToken() {
return new Object[][] { // This test will try to read doreplacedent from its resource token directly and validate it.
{ createdDocPermission.getToken() }, // This test will try to read doreplacedent from its parent collection resource token directly and validate it.
{ createdCollPermission.getToken() } };
}
/**
* This test will try to read collection from permission and validate it.
*
* @throws Exception
*/
@Test(groups = { "simple" }, dataProvider = "collectionAndPermissionData", timeOut = TIMEOUT)
public void readCollectionFromPermissionFeed(String collectionUrl, Permission permission) throws Exception {
AsyncDoreplacedentClient asyncClientResourceToken = null;
try {
List<Permission> permissionFeed = new ArrayList<>();
permissionFeed.add(permission);
asyncClientResourceToken = new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withPermissionFeed(permissionFeed).withConnectionPolicy(ConnectionPolicy.defaultPolicy()).withConsistencyLevel(ConsistencyLevel.SESSION).build();
Flux<ResourceResponse<DoreplacedentCollection>> readObservable = asyncClientResourceToken.readCollection(collectionUrl, null);
ResourceResponseValidator<DoreplacedentCollection> validator = new ResourceResponseValidator.Builder<DoreplacedentCollection>().withId(createdCollection.id()).build();
validateSuccess(readObservable, validator);
} finally {
safeClose(asyncClientResourceToken);
}
}
/**
* This test will try to read doreplacedent from permission and validate it.
*
* @throws Exception
*/
@Test(groups = { "simple" }, dataProvider = "doreplacedentAndPermissionData", timeOut = TIMEOUT)
public void readDoreplacedentFromPermissionFeed(String doreplacedentUrl, Permission permission, String doreplacedentId, String parreplacedionKey) throws Exception {
AsyncDoreplacedentClient asyncClientResourceToken = null;
try {
List<Permission> permissionFeed = new ArrayList<>();
permissionFeed.add(permission);
asyncClientResourceToken = new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withPermissionFeed(permissionFeed).withConnectionPolicy(ConnectionPolicy.defaultPolicy()).withConsistencyLevel(ConsistencyLevel.SESSION).build();
RequestOptions options = new RequestOptions();
if (StringUtils.isNotEmpty(parreplacedionKey)) {
options.setParreplacedionKey(new ParreplacedionKey((String) parreplacedionKey));
} else {
options.setParreplacedionKey(ParreplacedionKey.None);
}
Flux<ResourceResponse<Doreplacedent>> readObservable = asyncClientResourceToken.readDoreplacedent(doreplacedentUrl, options);
ResourceResponseValidator<Doreplacedent> validator = new ResourceResponseValidator.Builder<Doreplacedent>().withId(doreplacedentId).build();
validateSuccess(readObservable, validator);
} finally {
safeClose(asyncClientResourceToken);
}
}
/**
* This test will try to read doreplacedent from resource token directly and validate it.
*
* @throws Exception
*/
@Test(groups = { "simple" }, dataProvider = "resourceToken", timeOut = TIMEOUT)
public void readDoreplacedentFromResouceToken(String resourceToken) throws Exception {
AsyncDoreplacedentClient asyncClientResourceToken = null;
try {
asyncClientResourceToken = new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(resourceToken).withConnectionPolicy(ConnectionPolicy.defaultPolicy()).withConsistencyLevel(ConsistencyLevel.SESSION).build();
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(ParreplacedionKey.None);
Flux<ResourceResponse<Doreplacedent>> readObservable = asyncClientResourceToken.readDoreplacedent(createdDoreplacedent.selfLink(), options);
ResourceResponseValidator<Doreplacedent> validator = new ResourceResponseValidator.Builder<Doreplacedent>().withId(createdDoreplacedent.id()).build();
validateSuccess(readObservable, validator);
} finally {
safeClose(asyncClientResourceToken);
}
}
/**
* This test will try to read doreplacedent from multiple collection permissions having different keys and validate it.
*
* @throws Exception
*/
@Test(groups = { "simple" }, dataProvider = "doreplacedentAndMultipleCollPermissionData", timeOut = TIMEOUT)
public void readDoreplacedentOfParKeyFromTwoCollPermissionWithDiffParreplacedionKeys(String doreplacedentUrl, Permission collPermission1, Permission collPermission2, String doreplacedentId, String parreplacedionKey) throws Exception {
AsyncDoreplacedentClient asyncClientResourceToken = null;
try {
List<Permission> permissionFeed = new ArrayList<>();
permissionFeed.add(collPermission1);
permissionFeed.add(collPermission2);
asyncClientResourceToken = new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withPermissionFeed(permissionFeed).withConnectionPolicy(ConnectionPolicy.defaultPolicy()).withConsistencyLevel(ConsistencyLevel.SESSION).build();
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(new ParreplacedionKey(parreplacedionKey));
Flux<ResourceResponse<Doreplacedent>> readObservable = asyncClientResourceToken.readDoreplacedent(doreplacedentUrl, options);
ResourceResponseValidator<Doreplacedent> validator = new ResourceResponseValidator.Builder<Doreplacedent>().withId(doreplacedentId).build();
validateSuccess(readObservable, validator);
} finally {
safeClose(asyncClientResourceToken);
}
}
/**
* This test will try to read doreplacedent with wrong collection permission hence
* expecting resource not found failure.
*
* @throws Exception
*/
@Test(groups = { "simple" }, dataProvider = "doreplacedentAndPermissionDataForResourceNotFound", timeOut = TIMEOUT)
public void readDoreplacedentFromCollPermissionWithDiffParreplacedionKey_ResourceNotFound(String doreplacedentUrl, Permission permission, String parreplacedionKey) throws Exception {
AsyncDoreplacedentClient asyncClientResourceToken = null;
try {
List<Permission> permissionFeed = new ArrayList<>();
permissionFeed.add(permission);
asyncClientResourceToken = new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withPermissionFeed(permissionFeed).withConnectionPolicy(ConnectionPolicy.defaultPolicy()).withConsistencyLevel(ConsistencyLevel.SESSION).build();
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(new ParreplacedionKey(parreplacedionKey));
Flux<ResourceResponse<Doreplacedent>> readObservable = asyncClientResourceToken.readDoreplacedent(doreplacedentUrl, options);
FailureValidator validator = new FailureValidator.Builder().resourceNotFound().build();
validateFailure(readObservable, validator);
} finally {
safeClose(asyncClientResourceToken);
}
}
/**
* This test will try to read doreplacedent with collection permissions and preplaceding wrong parreplacedionkey
* in request options hence expecting exception.
*
* @throws Exception
*/
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void readDoreplacedentFromCollPermissionWithDiffParreplacedionKey_WithException() throws Exception {
AsyncDoreplacedentClient asyncClientResourceToken = null;
try {
List<Permission> permissionFeed = new ArrayList<>();
permissionFeed.add(createdColPermissionWithParreplacedionKey);
asyncClientResourceToken = new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withConnectionPolicy(ConnectionPolicy.defaultPolicy()).withConsistencyLevel(ConsistencyLevel.SESSION).withPermissionFeed(permissionFeed).build();
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(new ParreplacedionKey(PARreplacedION_KEY_VALUE_2));
Flux<ResourceResponse<Doreplacedent>> readObservable = asyncClientResourceToken.readDoreplacedent(createdDoreplacedentWithParreplacedionKey.selfLink(), options);
FailureValidator validator = new FailureValidator.Builder().resourceTokenNotFound().build();
validateFailure(readObservable, validator);
} finally {
safeClose(asyncClientResourceToken);
}
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeDeleteDatabase(client, databaseId);
safeClose(client);
}
private static User getUserDefinition() {
User user = new User();
user.id(USER_NAME);
return user;
}
private static Doreplacedent getDoreplacedent() {
Doreplacedent doc = new Doreplacedent(String.format(DOreplacedENT_DEFINITION, 1, 1));
return doc;
}
private Permission getCollPermission() {
Permission permission = new Permission();
permission.id(PERMISSION_FOR_COLL);
permission.setPermissionMode(PermissionMode.READ);
permission.setResourceLink(createdCollection.selfLink());
return permission;
}
private Permission getCollPermissionWithName() {
Permission permission = new Permission();
permission.id(PERMISSION_FOR_COLL_WITH_NAME);
permission.setPermissionMode(PermissionMode.READ);
permission.setResourceLink(TestUtils.getCollectionNameLink(createdDatabase.id(), createdCollection.id()));
return permission;
}
private Permission getDocPermission() {
Permission permission = new Permission();
permission.id(PERMISSION_FOR_DOC);
permission.setPermissionMode(PermissionMode.READ);
permission.setResourceLink(createdDoreplacedent.selfLink());
return permission;
}
private Permission getDocPermissionWithName() {
Permission permission = new Permission();
permission.id(PERMISSION_FOR_DOC_WITH_NAME);
permission.setPermissionMode(PermissionMode.READ);
permission.setResourceLink(TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollection.id(), createdDoreplacedent.id()));
return permission;
}
private Permission getDocPermissionWithParreplacedionKey() {
String permissionStr = String.format(PERMISSION_DEFINITION, createdDoreplacedentWithParreplacedionKey.selfLink(), PARreplacedION_KEY_VALUE);
Permission permission = new Permission(permissionStr);
return permission;
}
private Permission getDocPermissionWithParreplacedionKeyWithName() {
String permissionStr = String.format(PERMISSION_DEFINITION, TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey.id()), PARreplacedION_KEY_VALUE);
Permission permission = new Permission(permissionStr);
permission.id("PermissionForDocWithParreplacedionKeyWithName");
return permission;
}
private Permission getDocPermissionWithParreplacedionKey2() {
String permissionStr = String.format(PERMISSION_DEFINITION, createdDoreplacedentWithParreplacedionKey2.selfLink(), PARreplacedION_KEY_VALUE_2);
Permission permission = new Permission(permissionStr);
permission.id("PermissionForDocWithParreplacedionKey2");
return permission;
}
private Permission getDocPermissionWithParreplacedionKey2WithName() {
String permissionStr = String.format(PERMISSION_DEFINITION, TestUtils.getDoreplacedentNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id(), createdDoreplacedentWithParreplacedionKey2.id()), PARreplacedION_KEY_VALUE_2);
Permission permission = new Permission(permissionStr);
permission.id("PermissionForDocWithParreplacedionKey2WithName");
return permission;
}
private Permission getColPermissionWithParreplacedionKey() {
String permissionStr = String.format(COLLECTION_PERMISSION_DEFINITION, createdCollectionWithParreplacedionKey.selfLink(), PARreplacedION_KEY_VALUE);
Permission permission = new Permission(permissionStr);
return permission;
}
private Permission getColPermissionWithParreplacedionKeyWithName() {
String permissionStr = String.format(COLLECTION_PERMISSION_DEFINITION, TestUtils.getCollectionNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id()), PARreplacedION_KEY_VALUE);
Permission permission = new Permission(permissionStr);
permission.id("PermissionForColWithParreplacedionKeyWithName");
return permission;
}
private Permission getColPermissionWithParreplacedionKey2() {
String permissionStr = String.format(COLLECTION_PERMISSION_DEFINITION, createdCollectionWithParreplacedionKey.selfLink(), PARreplacedION_KEY_VALUE_2);
Permission permission = new Permission(permissionStr);
permission.id("PermissionForColWithParreplacedionKey2");
return permission;
}
private Permission getColPermissionWithParreplacedionKey2WithName() {
String permissionStr = String.format(COLLECTION_PERMISSION_DEFINITION, TestUtils.getCollectionNameLink(createdDatabase.id(), createdCollectionWithParreplacedionKey.id()), PARreplacedION_KEY_VALUE_2);
Permission permission = new Permission(permissionStr);
permission.id("PermissionForColWithParreplacedionKey2WithName");
return permission;
}
private String getUserLink() {
return createdUser.selfLink();
}
private Doreplacedent getDoreplacedentDefinitionWithParreplacedionKey() {
String uuid = UUID.randomUUID().toString();
Doreplacedent doc = new Doreplacedent(String.format(DOreplacedENT_DEFINITION_WITH_PERMISSION_KEY, uuid, PARreplacedION_KEY_VALUE));
return doc;
}
private Doreplacedent getDoreplacedentDefinitionWithParreplacedionKey2() {
String uuid = UUID.randomUUID().toString();
Doreplacedent doc = new Doreplacedent(String.format(DOreplacedENT_DEFINITION_WITH_PERMISSION_KEY, uuid, PARreplacedION_KEY_VALUE_2));
return doc;
}
private DoreplacedentCollection getCollectionDefinitionWithParreplacedionKey(String pkDefPath) {
ParreplacedionKeyDefinition parreplacedionKeyDef = new ParreplacedionKeyDefinition();
ArrayList<String> paths = new ArrayList<String>();
paths.add(pkDefPath);
parreplacedionKeyDef.paths(paths);
DoreplacedentCollection collectionDefinition = new DoreplacedentCollection();
collectionDefinition.id(UUID.randomUUID().toString());
collectionDefinition.setParreplacedionKey(parreplacedionKeyDef);
return collectionDefinition;
}
}
19
View Complete Implementation : BackPressureTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME: beforeClreplaced method times out inconsistently
@Ignore
public clreplaced BackPressureTest extends TestSuiteBase {
private static final int TIMEOUT = 200000;
private static final int SETUP_TIMEOUT = 60000;
private CosmosDatabase createdDatabase;
private CosmosContainer createdCollection;
private List<CosmosItemProperties> createdDoreplacedents;
private CosmosClient client;
public String getCollectionLink() {
return TestUtils.getCollectionNameLink(createdDatabase.id(), createdCollection.id());
}
private static CosmosContainerProperties getSingleParreplacedionCollectionDefinition() {
ParreplacedionKeyDefinition parreplacedionKeyDef = new ParreplacedionKeyDefinition();
ArrayList<String> paths = new ArrayList<String>();
paths.add("/mypk");
parreplacedionKeyDef.paths(paths);
CosmosContainerProperties collectionDefinition = new CosmosContainerProperties(UUID.randomUUID().toString(), parreplacedionKeyDef);
return collectionDefinition;
}
@Factory(dataProvider = "simpleClientBuildersWithDirectHttps")
public BackPressureTest(CosmosClientBuilder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "long" }, timeOut = 3 * TIMEOUT)
public void readFeed() throws Exception {
FeedOptions options = new FeedOptions();
options.maxItemCount(1);
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosItemProperties>> queryObservable = createdCollection.readAllItems(options);
RxDoreplacedentClientUnderTest rxClient = (RxDoreplacedentClientUnderTest) CosmosBridgeInternal.getAsyncDoreplacedentClient(client);
rxClient.httpRequests.clear();
TestSubscriber<FeedResponse<CosmosItemProperties>> subscriber = new TestSubscriber<FeedResponse<CosmosItemProperties>>(1);
queryObservable.publishOn(Schedulers.elastic(), 1).subscribe(subscriber);
// 10 seconds
int sleepTimeInMillis = 10000;
int i = 0;
// use a test subscriber and request for more result and sleep in between
while (subscriber.completions() == 0 && subscriber.getEvents().get(1).isEmpty()) {
TimeUnit.MILLISECONDS.sleep(sleepTimeInMillis);
sleepTimeInMillis /= 2;
if (sleepTimeInMillis > 1000) {
// validate that only one item is returned to subscriber in each iteration
replacedertThat(subscriber.valueCount() - i).isEqualTo(1);
}
// validate that only one item is returned to subscriber in each iteration
// validate that the difference between the number of requests to backend
// and the number of returned results is always less than a fixed threshold
replacedertThat(rxClient.httpRequests.size() - subscriber.valueCount()).isLessThanOrEqualTo(Queues.SMALL_BUFFER_SIZE);
subscriber.requestMore(1);
i++;
}
subscriber.replacedertNoErrors();
subscriber.replacedertComplete();
replacedertThat(subscriber.valueCount()).isEqualTo(createdDoreplacedents.size());
}
@Test(groups = { "long" }, timeOut = 3 * TIMEOUT)
public void query() throws Exception {
FeedOptions options = new FeedOptions();
options.maxItemCount(1);
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<CosmosItemProperties>> queryObservable = createdCollection.queryItems("SELECT * from r", options);
RxDoreplacedentClientUnderTest rxClient = (RxDoreplacedentClientUnderTest) CosmosBridgeInternal.getAsyncDoreplacedentClient(client);
rxClient.httpRequests.clear();
TestSubscriber<FeedResponse<CosmosItemProperties>> subscriber = new TestSubscriber<FeedResponse<CosmosItemProperties>>(1);
queryObservable.publishOn(Schedulers.elastic(), 1).subscribe(subscriber);
int sleepTimeInMillis = 10000;
int i = 0;
// use a test subscriber and request for more result and sleep in between
while (subscriber.completions() == 0 && subscriber.getEvents().get(1).isEmpty()) {
TimeUnit.MILLISECONDS.sleep(sleepTimeInMillis);
sleepTimeInMillis /= 2;
if (sleepTimeInMillis > 1000) {
// validate that only one item is returned to subscriber in each iteration
replacedertThat(subscriber.valueCount() - i).isEqualTo(1);
}
// validate that the difference between the number of requests to backend
// and the number of returned results is always less than a fixed threshold
replacedertThat(rxClient.httpRequests.size() - subscriber.valueCount()).isLessThanOrEqualTo(Queues.SMALL_BUFFER_SIZE);
subscriber.requestMore(1);
i++;
}
subscriber.replacedertNoErrors();
subscriber.replacedertComplete();
replacedertThat(subscriber.valueCount()).isEqualTo(createdDoreplacedents.size());
}
@BeforeClreplaced(groups = { "long" }, timeOut = 2 * SETUP_TIMEOUT)
public void beforeClreplaced() throws Exception {
CosmosContainerRequestOptions options = new CosmosContainerRequestOptions();
client = new ClientUnderTestBuilder(clientBuilder()).build();
createdDatabase = getSharedCosmosDatabase(client);
createdCollection = createCollection(createdDatabase, getSingleParreplacedionCollectionDefinition(), options, 1000);
RxDoreplacedentClientUnderTest rxClient = (RxDoreplacedentClientUnderTest) CosmosBridgeInternal.getAsyncDoreplacedentClient(client);
// increase throughput to max for a single parreplacedion collection to avoid throttling
// for bulk insert and later queries.
Offer offer = rxClient.queryOffers(String.format("SELECT * FROM r WHERE r.offerResourceId = '%s'", createdCollection.read().block().properties().resourceId()), null).take(1).map(FeedResponse::results).single().block().get(0);
offer.setThroughput(6000);
offer = rxClient.replaceOffer(offer).single().block().getResource();
replacedertThat(offer.getThroughput()).isEqualTo(6000);
ArrayList<CosmosItemProperties> docDefList = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
docDefList.add(getDoreplacedentDefinition(i));
}
createdDoreplacedents = bulkInsertBlocking(createdCollection, docDefList);
waitIfNeededForReplicasToCatchUp(clientBuilder());
warmUp();
}
private void warmUp() {
// ensure collection is cached
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
createdCollection.queryItems("SELECT * from r", options).blockFirst();
}
// TODO: DANOBLE: Investigate DIRECT TCP performance issue
// NOTE: This method requires multiple SHUTDOWN_TIMEOUT intervals
// SEE: https://msdata.visualstudio.com/CosmosDB/_workitems/edit/367028https://msdata.visualstudio.com/CosmosDB/_workitems/edit/367028
@AfterClreplaced(groups = { "long" }, timeOut = 2 * SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeDeleteCollection(createdCollection);
safeClose(client);
}
private static CosmosItemProperties getDoreplacedentDefinition(int cnt) {
String uuid = UUID.randomUUID().toString();
CosmosItemProperties doc = new CosmosItemProperties(String.format("{ " + "\"id\": \"%s\", " + "\"prop\" : %d, " + "\"mypk\": \"%s\", " + "\"sgmts\": [[6519456, 1471916863], [2498434, 1455671440]]" + "}", uuid, cnt, uuid));
return doc;
}
}
19
View Complete Implementation : PermissionQueryTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// TODO: change to use external TestSuiteBase
// FIXME beforeClreplaced times out inconsistently
@Ignore
public clreplaced PermissionQueryTest extends TestSuiteBase {
public final String databaseId = DatabaseForTest.generateId();
private Database createdDatabase;
private User createdUser;
private List<Permission> createdPermissions = new ArrayList<>();
private AsyncDoreplacedentClient client;
@Factory(dataProvider = "clientBuilders")
public PermissionQueryTest(AsyncDoreplacedentClient.Builder clientBuilder) {
super(clientBuilder);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryWithFilter() throws Exception {
String filterId = createdPermissions.get(0).id();
String query = String.format("SELECT * from c where c.id = '%s'", filterId);
FeedOptions options = new FeedOptions();
options.maxItemCount(5);
Flux<FeedResponse<Permission>> queryObservable = client.queryPermissions(getUserLink(), query, options);
List<Permission> expectedDocs = createdPermissions.stream().filter(sp -> filterId.equals(sp.id())).collect(Collectors.toList());
replacedertThat(expectedDocs).isNotEmpty();
int expectedPageSize = (expectedDocs.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<Permission> validator = new FeedResponseListValidator.Builder<Permission>().totalSize(expectedDocs.size()).exactlyContainsInAnyOrder(expectedDocs.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).pageSatisfy(0, new FeedResponseValidator.Builder<Permission>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator, TIMEOUT);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void query_NoResults() throws Exception {
String query = "SELECT * from root r where r.id = '2'";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<Permission>> queryObservable = client.queryPermissions(getUserLink(), query, options);
FeedResponseListValidator<Permission> validator = new FeedResponseListValidator.Builder<Permission>().containsExactly(new ArrayList<>()).numberOfPages(1).pageSatisfy(0, new FeedResponseValidator.Builder<Permission>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void queryAll() throws Exception {
String query = "SELECT * from root";
FeedOptions options = new FeedOptions();
options.maxItemCount(3);
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<Permission>> queryObservable = client.queryPermissions(getUserLink(), query, options);
int expectedPageSize = (createdPermissions.size() + options.maxItemCount() - 1) / options.maxItemCount();
FeedResponseListValidator<Permission> validator = new FeedResponseListValidator.Builder<Permission>().exactlyContainsInAnyOrder(createdPermissions.stream().map(d -> d.resourceId()).collect(Collectors.toList())).numberOfPages(expectedPageSize).allPagesSatisfy(new FeedResponseValidator.Builder<Permission>().requestChargeGreaterThanOrEqualTo(1.0).build()).build();
validateQuerySuccess(queryObservable, validator);
}
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void invalidQuerySytax() throws Exception {
String query = "I am an invalid query";
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
Flux<FeedResponse<Permission>> queryObservable = client.queryPermissions(getUserLink(), query, options);
FailureValidator validator = new FailureValidator.Builder().instanceOf(CosmosClientException.clreplaced).statusCode(400).notNullActivityId().build();
validateQueryFailure(queryObservable, validator);
}
@BeforeClreplaced(groups = { "simple" }, timeOut = SETUP_TIMEOUT)
public void beforeClreplaced() {
client = clientBuilder().build();
Database d = new Database();
d.id(databaseId);
createdDatabase = createDatabase(client, d);
createdUser = safeCreateUser(client, createdDatabase.id(), getUserDefinition());
for (int i = 0; i < 5; i++) {
createdPermissions.add(createPermissions(client, i));
}
waitIfNeededForReplicasToCatchUp(clientBuilder());
}
@AfterClreplaced(groups = { "simple" }, timeOut = SHUTDOWN_TIMEOUT, alwaysRun = true)
public void afterClreplaced() {
safeDeleteDatabase(client, createdDatabase);
safeClose(client);
}
private static User getUserDefinition() {
User user = new User();
user.id(UUID.randomUUID().toString());
return user;
}
public Permission createPermissions(AsyncDoreplacedentClient client, int index) {
DoreplacedentCollection collection = new DoreplacedentCollection();
collection.id(UUID.randomUUID().toString());
Permission permission = new Permission();
permission.id(UUID.randomUUID().toString());
permission.setPermissionMode(PermissionMode.READ);
permission.setResourceLink("dbs/AQAAAA==/colls/AQAAAJ0fgT" + Integer.toString(index) + "=");
return client.createPermission(getUserLink(), permission, null).single().block().getResource();
}
private String getUserLink() {
return "dbs/" + getDatabaseId() + "/users/" + getUserId();
}
private String getDatabaseId() {
return createdDatabase.id();
}
private String getUserId() {
return createdUser.id();
}
}
19
View Complete Implementation : DocumentCRUDAsyncAPITest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
/**
* This integration test clreplaced demonstrates how to use Async API to create,
* delete, replace, and upsert Doreplacedents. If you are interested in examples for
* querying for doreplacedents please see {@link DoreplacedentQueryAsyncAPITest}
* <p>
* NOTE: you can use rxJava based async api with java8 lambda expression. Use
* of rxJava based async APIs with java8 lambda expressions is much prettier.
* <p>
* You can also use the async API without java8 lambda expression.
* <p>
* For example
* <ul>
* <li>{@link #createDoreplacedent_Async()} demonstrates how to use async api
* with java8 lambda expression.
*
* <li>{@link #createDoreplacedent_Async_withoutLambda()} demonstrates how to do
* the same thing without lambda expression.
* </ul>
* <p>
* Also if you need to work with Future or CompletableFuture it is possible to
* transform a flux to CompletableFuture. Please see
* {@link #transformObservableToCompletableFuture()}
*/
// FIXME: beforeClreplaced times out inconsistently
@Ignore
public clreplaced DoreplacedentCRUDAsyncAPITest extends DoreplacedentClientTest {
private final static String PARreplacedION_KEY_PATH = "/mypk";
private final static int TIMEOUT = 60000;
private AsyncDoreplacedentClient client;
private Database createdDatabase;
private DoreplacedentCollection createdCollection;
@BeforeClreplaced(groups = "samples", timeOut = TIMEOUT)
public void setUp() {
ConnectionPolicy connectionPolicy = new ConnectionPolicy().connectionMode(ConnectionMode.DIRECT);
this.clientBuilder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.SESSION);
this.client = this.clientBuilder().build();
DoreplacedentCollection collectionDefinition = new DoreplacedentCollection();
collectionDefinition.id(UUID.randomUUID().toString());
ParreplacedionKeyDefinition parreplacedionKeyDefinition = new ParreplacedionKeyDefinition();
ArrayList<String> parreplacedionKeyPaths = new ArrayList<String>();
parreplacedionKeyPaths.add(PARreplacedION_KEY_PATH);
parreplacedionKeyDefinition.paths(parreplacedionKeyPaths);
collectionDefinition.setParreplacedionKey(parreplacedionKeyDefinition);
// CREATE database
createdDatabase = Utils.createDatabaseForTest(client);
// CREATE collection
createdCollection = client.createCollection("dbs/" + createdDatabase.id(), collectionDefinition, null).single().block().getResource();
}
@AfterClreplaced(groups = "samples", timeOut = TIMEOUT)
public void shutdown() {
Utils.safeClean(client, createdDatabase);
Utils.safeClose(client);
}
/**
* CREATE a doreplacedent using java8 lambda expressions
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void createDoreplacedent_Async() throws Exception {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), 1));
Flux<ResourceResponse<Doreplacedent>> createDoreplacedentObservable = client.createDoreplacedent(getCollectionLink(), doc, null, true);
final CountDownLatch completionLatch = new CountDownLatch(1);
// Subscribe to Doreplacedent resource response emitted by the observable
// We know there will be one response
createDoreplacedentObservable.single().subscribe(doreplacedentResourceResponse -> {
System.out.println(doreplacedentResourceResponse.getActivityId());
completionLatch.countDown();
}, error -> {
System.err.println("an error occurred while creating the doreplacedent: actual cause: " + error.getMessage());
completionLatch.countDown();
});
// Wait till doreplacedent creation completes
completionLatch.await();
}
/**
* CREATE a doreplacedent without java8 lambda expressions
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void createDoreplacedent_Async_withoutLambda() throws Exception {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), 1));
Flux<ResourceResponse<Doreplacedent>> createDoreplacedentObservable = client.createDoreplacedent(getCollectionLink(), doc, null, true);
final CountDownLatch completionLatch = new CountDownLatch(1);
Consumer<ResourceResponse<Doreplacedent>> onNext = new Consumer<ResourceResponse<Doreplacedent>>() {
@Override
public void accept(ResourceResponse<Doreplacedent> doreplacedentResourceResponse) {
System.out.println(doreplacedentResourceResponse.getActivityId());
completionLatch.countDown();
}
};
Consumer<Throwable> onError = new Consumer<Throwable>() {
@Override
public void accept(Throwable error) {
System.err.println("an error occurred while creating the doreplacedent: actual cause: " + error.getMessage());
completionLatch.countDown();
}
};
// Subscribe to Doreplacedent resource response emitted by the observable
// We know there will be one response
createDoreplacedentObservable.single().subscribe(onNext, onError);
// Wait till doreplacedent creation completes
completionLatch.await();
}
/**
* CREATE a doreplacedent in a blocking manner
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void createDoreplacedent_toBlocking() {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), 1));
Flux<ResourceResponse<Doreplacedent>> createDoreplacedentObservable = client.createDoreplacedent(getCollectionLink(), doc, null, true);
// toBlocking() converts to a blocking observable.
// single() gets the only result.
createDoreplacedentObservable.single().block();
}
/**
* CREATE a doreplacedent with a programmatically set definition, in an Async manner
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void createDoreplacedentWithProgrammableDoreplacedentDefinition() throws Exception {
Doreplacedent doreplacedentDefinition = new Doreplacedent();
doreplacedentDefinition.id("test-doreplacedent");
BridgeInternal.setProperty(doreplacedentDefinition, "counter", 1);
// CREATE a doreplacedent
Doreplacedent createdDoreplacedent = client.createDoreplacedent(getCollectionLink(), doreplacedentDefinition, null, false).single().block().getResource();
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(ParreplacedionKey.None);
// READ the created doreplacedent
Flux<ResourceResponse<Doreplacedent>> readDoreplacedentObservable = client.readDoreplacedent(getDoreplacedentLink(createdDoreplacedent), null);
final CountDownLatch completionLatch = new CountDownLatch(1);
readDoreplacedentObservable.subscribe(doreplacedentResourceResponse -> {
Doreplacedent readDoreplacedent = doreplacedentResourceResponse.getResource();
// The read doreplacedent must be the same as the written doreplacedent
replacedertThat(readDoreplacedent.id(), equalTo("test-doreplacedent"));
replacedertThat(readDoreplacedent.getInt("counter"), equalTo(1));
System.out.println(doreplacedentResourceResponse.getActivityId());
completionLatch.countDown();
}, error -> {
System.err.println("an error occured while creating the doreplacedent: actual cause: " + error.getMessage());
completionLatch.countDown();
});
completionLatch.await();
}
/**
* CREATE 10 doreplacedents and sum up all the doreplacedents creation request charges
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void doreplacedentCreation_SumUpRequestCharge() throws Exception {
// CREATE 10 doreplacedents
List<Flux<ResourceResponse<Doreplacedent>>> listOfCreateDoreplacedentObservables = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), i));
Flux<ResourceResponse<Doreplacedent>> createDoreplacedentObservable = client.createDoreplacedent(getCollectionLink(), doc, null, false);
listOfCreateDoreplacedentObservables.add(createDoreplacedentObservable);
}
// Merge all doreplacedent creation observables into one observable
Flux<ResourceResponse<Doreplacedent>> mergedObservable = Flux.merge(listOfCreateDoreplacedentObservables);
// CREATE a new observable emitting the total charge of creating all 10
// doreplacedents.
Flux<Double> totalChargeObservable = mergedObservable.map(ResourceResponse::getRequestCharge).reduce(Double::sum).flux();
// Sum up all the charges
final CountDownLatch completionLatch = new CountDownLatch(1);
// Subscribe to the total request charge observable
totalChargeObservable.subscribe(totalCharge -> {
// Print the total charge
System.out.println(totalCharge);
completionLatch.countDown();
}, e -> completionLatch.countDown());
completionLatch.await();
}
/**
* Attempt to create a doreplacedent which already exists
* - First create a doreplacedent
* - Using the async api generate an async doreplacedent creation observable
* - Converts the Observable to blocking using Observable.toBlocking() api
* - Catch already exist failure (409)
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void createDoreplacedent_toBlocking_DoreplacedentAlreadyExists_Fails() {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), 1));
client.createDoreplacedent(getCollectionLink(), doc, null, false).single().block();
// CREATE the doreplacedent
Flux<ResourceResponse<Doreplacedent>> createDoreplacedentObservable = client.createDoreplacedent(getCollectionLink(), doc, null, false);
try {
// Converts the observable to a single observable
createDoreplacedentObservable.single().block();
replacedert.fail("Doreplacedent Already Exists. Doreplacedent Creation must fail");
} catch (Exception e) {
replacedertThat("Doreplacedent already exists.", ((CosmosClientException) e.getCause()).statusCode(), equalTo(409));
}
}
/**
* Attempt to create a doreplacedent which already exists
* - First create a doreplacedent
* - Using the async api generate an async doreplacedent creation observable
* - Converts the Observable to blocking using Observable.toBlocking() api
* - Catch already exist failure (409)
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void createDoreplacedent_Async_DoreplacedentAlreadyExists_Fails() throws Exception {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), 1));
client.createDoreplacedent(getCollectionLink(), doc, null, false).single().block();
// CREATE the doreplacedent
Flux<ResourceResponse<Doreplacedent>> createDoreplacedentObservable = client.createDoreplacedent(getCollectionLink(), doc, null, false);
List<Throwable> errorList = Collections.synchronizedList(new ArrayList<>());
createDoreplacedentObservable.subscribe(resourceResponse -> {
}, error -> {
errorList.add(error);
System.err.println("failed to create a doreplacedent due to: " + error.getMessage());
});
Thread.sleep(2000);
replacedertThat(errorList, hreplacedize(1));
replacedertThat(errorList.get(0), is(instanceOf(CosmosClientException.clreplaced)));
replacedertThat(((CosmosClientException) errorList.get(0)).statusCode(), equalTo(409));
}
/**
* REPLACE a doreplacedent
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void doreplacedentReplace_Async() throws Exception {
// CREATE a doreplacedent
Doreplacedent createdDoreplacedent = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), 1));
createdDoreplacedent = client.createDoreplacedent(getCollectionLink(), createdDoreplacedent, null, false).single().block().getResource();
// Try to replace the existing doreplacedent
Doreplacedent replacingDoreplacedent = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d', 'new-prop' : '2'}", createdDoreplacedent.id(), 1));
Flux<ResourceResponse<Doreplacedent>> replaceDoreplacedentObservable = client.replaceDoreplacedent(getDoreplacedentLink(createdDoreplacedent), replacingDoreplacedent, null);
List<ResourceResponse<Doreplacedent>> capturedResponse = Collections.synchronizedList(new ArrayList<>());
replaceDoreplacedentObservable.subscribe(resourceResponse -> {
capturedResponse.add(resourceResponse);
});
Thread.sleep(2000);
replacedertThat(capturedResponse, hreplacedize(1));
replacedertThat(capturedResponse.get(0).getResource().get("new-prop"), equalTo("2"));
}
/**
* Upsert a doreplacedent
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void doreplacedentUpsert_Async() throws Exception {
// CREATE a doreplacedent
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d'}", UUID.randomUUID().toString(), 1));
client.createDoreplacedent(getCollectionLink(), doc, null, false).single().block();
// Upsert the existing doreplacedent
Doreplacedent upsertingDoreplacedent = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d', 'new-prop' : '2'}", doc.id(), 1));
Flux<ResourceResponse<Doreplacedent>> upsertDoreplacedentObservable = client.upsertDoreplacedent(getCollectionLink(), upsertingDoreplacedent, null, false);
List<ResourceResponse<Doreplacedent>> capturedResponse = Collections.synchronizedList(new ArrayList<>());
upsertDoreplacedentObservable.subscribe(resourceResponse -> {
capturedResponse.add(resourceResponse);
});
Thread.sleep(4000);
replacedertThat(capturedResponse, hreplacedize(1));
replacedertThat(capturedResponse.get(0).getResource().get("new-prop"), equalTo("2"));
}
/**
* DELETE a doreplacedent
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void doreplacedentDelete_Async() throws Exception {
// CREATE a doreplacedent
Doreplacedent createdDoreplacedent = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d', 'mypk' : '%s'}", UUID.randomUUID().toString(), 1, UUID.randomUUID().toString()));
createdDoreplacedent = client.createDoreplacedent(getCollectionLink(), createdDoreplacedent, null, false).single().block().getResource();
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(new ParreplacedionKey(createdDoreplacedent.getString("mypk")));
// DELETE the existing doreplacedent
Flux<ResourceResponse<Doreplacedent>> deleteDoreplacedentObservable = client.deleteDoreplacedent(getDoreplacedentLink(createdDoreplacedent), options);
List<ResourceResponse<Doreplacedent>> capturedResponse = Collections.synchronizedList(new ArrayList<>());
deleteDoreplacedentObservable.subscribe(resourceResponse -> {
capturedResponse.add(resourceResponse);
});
Thread.sleep(2000);
replacedertThat(capturedResponse, hreplacedize(1));
// replacedert doreplacedent is deleted
FeedOptions queryOptions = new FeedOptions();
queryOptions.enableCrossParreplacedionQuery(true);
List<Doreplacedent> listOfDoreplacedents = client.queryDoreplacedents(getCollectionLink(), String.format("SELECT * FROM r where r.id = '%s'", createdDoreplacedent.id()), queryOptions).map(// Map page to its list of doreplacedents
FeedResponse::results).concatMap(// Flatten the observable
Flux::fromIterable).collectList().single().block();
// replacedert that there is no doreplacedent found
replacedertThat(listOfDoreplacedents, hreplacedize(0));
}
/**
* READ a doreplacedent
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void doreplacedentRead_Async() throws Exception {
// CREATE a doreplacedent
Doreplacedent createdDoreplacedent = new Doreplacedent(String.format("{ 'id': 'doc%s', 'counter': '%d', 'mypk' : '%s'}", UUID.randomUUID().toString(), 1, UUID.randomUUID().toString()));
createdDoreplacedent = client.createDoreplacedent(getCollectionLink(), createdDoreplacedent, null, false).single().block().getResource();
// READ the doreplacedent
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(new ParreplacedionKey(createdDoreplacedent.getString("mypk")));
Flux<ResourceResponse<Doreplacedent>> readDoreplacedentObservable = client.readDoreplacedent(getDoreplacedentLink(createdDoreplacedent), options);
List<ResourceResponse<Doreplacedent>> capturedResponse = Collections.synchronizedList(new ArrayList<>());
readDoreplacedentObservable.subscribe(resourceResponse -> {
capturedResponse.add(resourceResponse);
});
Thread.sleep(2000);
// replacedert doreplacedent is retrieved
replacedertThat(capturedResponse, hreplacedize(1));
}
private static clreplaced TestObject {
@JsonProperty("mypk")
private String mypk;
@JsonProperty("id")
private String id;
@JsonProperty("prop")
private String prop;
}
@Test(groups = { "samples" }, timeOut = TIMEOUT)
public void customSerialization() throws Exception {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.configure(JsonParser.Feature.STRICT_DUPLICATE_DETECTION, true);
TestObject testObject = new TestObject();
testObject.id = UUID.randomUUID().toString();
testObject.mypk = UUID.randomUUID().toString();
testObject.prop = UUID.randomUUID().toString();
String itemAsJsonString = mapper.writeValuereplacedtring(testObject);
Doreplacedent doc = new Doreplacedent(itemAsJsonString);
Doreplacedent createdDoreplacedent = client.createDoreplacedent(getCollectionLink(), doc, null, false).single().block().getResource();
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(new ParreplacedionKey(testObject.mypk));
Doreplacedent readDoreplacedent = client.readDoreplacedent(createdDoreplacedent.selfLink(), options).single().block().getResource();
TestObject readObject = mapper.readValue(readDoreplacedent.toJson(), TestObject.clreplaced);
replacedertThat(readObject.prop, equalTo(testObject.prop));
}
/**
* You can convert a Flux to a CompletableFuture.
*/
@Test(groups = "samples", timeOut = TIMEOUT)
public void transformObservableToCompletableFuture() throws Exception {
Doreplacedent doc = new Doreplacedent(String.format("{ 'id': 'doc%d', 'counter': '%d'}", RandomUtils.nextInt(), 1));
Flux<ResourceResponse<Doreplacedent>> createDoreplacedentObservable = client.createDoreplacedent(getCollectionLink(), doc, null, false);
CompletableFuture<ResourceResponse<Doreplacedent>> listenableFuture = createDoreplacedentObservable.single().toFuture();
ResourceResponse<Doreplacedent> rrd = listenableFuture.get();
replacedertThat(rrd.getRequestCharge(), greaterThan((double) 0));
System.out.print(rrd.getRequestCharge());
}
private String getCollectionLink() {
return "dbs/" + createdDatabase.id() + "/colls/" + createdCollection.id();
}
private String getDoreplacedentLink(Doreplacedent createdDoreplacedent) {
return "dbs/" + createdDatabase.id() + "/colls/" + createdCollection.id() + "/docs/" + createdDoreplacedent.id();
}
}
18
View Complete Implementation : ConsistencyTests1.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "direct" }, timeOut = CONSISTENCY_TEST_TIMEOUT)
public void validateStrongConsistencyOnAsyncReplicationGW() throws InterruptedException {
validateStrongConsistencyOnAsyncReplication(true);
}
18
View Complete Implementation : ConsistencyTests1.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "direct" }, timeOut = CONSISTENCY_TEST_TIMEOUT)
public void validateStrongConsistencyOnAsyncReplicationDirect() throws InterruptedException {
validateStrongConsistencyOnAsyncReplication(false);
}
18
View Complete Implementation : ConsistencyTests1.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME: test is flaky, fails inconsistently
@Ignore
@Test(groups = { "direct" }, timeOut = CONSISTENCY_TEST_TIMEOUT)
public void validateSessionContainerAfterCollectionCreateReplace() {
// TODO Need to test with TCP protocol
// https://msdata.visualstudio.com/CosmosDB/_workitems/edit/355057
// validateSessionContainerAfterCollectionCreateReplace(false, Protocol.TCP);
validateSessionContainerAfterCollectionCreateReplace(false);
validateSessionContainerAfterCollectionCreateReplace(true);
}
17
View Complete Implementation : TestChannelsFromEvents.java
Copyright Apache License 2.0
Author : princesslana
Copyright Apache License 2.0
Author : princesslana
@Ignore
private Channel simpleCreateChannel() {
Channel channel = DataFaker.channel();
events.onNext(ChannelCreateEvent.of(channel));
return channel;
}
17
View Complete Implementation : TestChannelsFromEvents.java
Copyright Apache License 2.0
Author : princesslana
Copyright Apache License 2.0
Author : princesslana
@Ignore
private Guild simpleCreateGuild() {
Guild guild = DataFaker.guild();
events.onNext(GuildCreateEvent.of(guild));
return guild;
}
16
View Complete Implementation : ConsistencyTests1.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "direct" }, timeOut = CONSISTENCY_TEST_TIMEOUT)
public void validateConsistentPrefixOnAsyncReplication() throws InterruptedException {
if (!(TestConfigurations.CONSISTENCY.equalsIgnoreCase(ConsistencyLevel.STRONG.toString()) || TestConfigurations.CONSISTENCY.equalsIgnoreCase(ConsistencyLevel.BOUNDED_STALENESS.toString()))) {
throw new SkipException("Endpoint does not have strong consistency");
}
ConnectionPolicy connectionPolicy = new ConnectionPolicy();
connectionPolicy.connectionMode(ConnectionMode.DIRECT);
this.writeClient = (RxDoreplacedentClientImpl) new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.BOUNDED_STALENESS).build();
this.readClient = (RxDoreplacedentClientImpl) new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.BOUNDED_STALENESS).build();
Doreplacedent doreplacedentDefinition = getDoreplacedentDefinition();
Doreplacedent doreplacedent = createDoreplacedent(this.initClient, createdDatabase.id(), createdCollection.id(), doreplacedentDefinition);
boolean readLagging = validateConsistentPrefix(doreplacedent);
// replacedertThat(readLagging).isTrue(); //Will fail if batch repl is turned off
}
16
View Complete Implementation : ConsistencyTests1.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "direct" }, timeOut = CONSISTENCY_TEST_TIMEOUT)
public void validateConsistentPrefixOnSyncReplication() throws InterruptedException {
if (!(TestConfigurations.CONSISTENCY.equalsIgnoreCase(ConsistencyLevel.STRONG.toString()) || TestConfigurations.CONSISTENCY.equalsIgnoreCase(ConsistencyLevel.BOUNDED_STALENESS.toString()))) {
throw new SkipException("Endpoint does not have strong consistency");
}
ConnectionPolicy connectionPolicy = new ConnectionPolicy();
connectionPolicy.connectionMode(ConnectionMode.GATEWAY);
this.writeClient = (RxDoreplacedentClientImpl) new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.BOUNDED_STALENESS).build();
this.readClient = (RxDoreplacedentClientImpl) new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.BOUNDED_STALENESS).build();
User user = safeCreateUser(this.initClient, createdDatabase.id(), getUserDefinition());
boolean readLagging = validateConsistentPrefix(user);
replacedertThat(readLagging).isFalse();
}
16
View Complete Implementation : ConsistencyTests1.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "direct" }, timeOut = CONSISTENCY_TEST_TIMEOUT)
public void validateStrongConsistencyOnSyncReplication() throws Exception {
if (!TestConfigurations.CONSISTENCY.equalsIgnoreCase(ConsistencyLevel.STRONG.toString())) {
throw new SkipException("Endpoint does not have strong consistency");
}
ConnectionPolicy connectionPolicy = new ConnectionPolicy();
connectionPolicy.connectionMode(ConnectionMode.GATEWAY);
this.writeClient = (RxDoreplacedentClientImpl) new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.STRONG).build();
this.readClient = (RxDoreplacedentClientImpl) new AsyncDoreplacedentClient.Builder().withServiceEndpoint(TestConfigurations.HOST).withMasterKeyOrResourceToken(TestConfigurations.MASTER_KEY).withConnectionPolicy(connectionPolicy).withConsistencyLevel(ConsistencyLevel.STRONG).build();
User userDefinition = getUserDefinition();
userDefinition.id(userDefinition.id() + "validateStrongConsistencyOnSyncReplication");
User user = safeCreateUser(this.initClient, createdDatabase.id(), userDefinition);
validateStrongConsistency(user);
}
16
View Complete Implementation : TokenResolverTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "simple" }, dataProvider = "connectionMode", timeOut = TIMEOUT)
public void writeDoreplacedentWithAllPermission(ConnectionMode connectionMode) {
AsyncDoreplacedentClient asyncClientWithTokenResolver = null;
try {
asyncClientWithTokenResolver = buildClient(connectionMode, PermissionMode.ALL);
Doreplacedent doreplacedentDefinition = getDoreplacedentDefinition();
Flux<ResourceResponse<Doreplacedent>> readObservable = asyncClientWithTokenResolver.createDoreplacedent(createdCollection.selfLink(), doreplacedentDefinition, null, true);
ResourceResponseValidator<Doreplacedent> validator = new ResourceResponseValidator.Builder<Doreplacedent>().withId(doreplacedentDefinition.id()).build();
validateSuccess(readObservable, validator);
} finally {
safeClose(asyncClientWithTokenResolver);
}
}
16
View Complete Implementation : GitLabIntegrationTest.java
Copyright GNU General Public License v2.0
Author : bozaro
Copyright GNU General Public License v2.0
Author : bozaro
/**
* Test for #119.
*/
@Ignore
@Test
void gitlabMappingAsUser() throws Exception {
final GitLabToken userToken = createToken(user, userPreplacedword, false);
try (SvnTestServer server = createServer(userToken, dir -> new GitLabMappingConfig(dir, GitCreateMode.EMPTY))) {
openSvnRepository(server, gitlabProject, root, rootPreplacedword).getLatestRevision();
}
}
15
View Complete Implementation : JTACDITest.java
Copyright Apache License 2.0
Author : eclipse
Copyright Apache License 2.0
Author : eclipse
/*
* Start two concurrent asynchronous stages and verify that
* a transaction scoped bean is updated twice.
*/
@Test
@Ignore
public void testConcurrentTransactionPropagation() {
// create an executor that propagates the transaction context
ManagedExecutor executor = createExecutor("testConcurrentTransactionPropagation");
UserTransaction ut = getUserTransaction("testConcurrentTransactionPropagation");
if (executor == null || ut == null) {
// the implementation does not support transaction propagation
return;
}
try {
int result = transactionalService.testConcurrentTransactionPropagation(executor);
if (result != UNSUPPORTED) {
replacedert.replacedertEquals(2, result, "testTransactionPropagation failed%n");
}
verifyNoTransaction();
} finally {
executor.shutdownNow();
}
}
15
View Complete Implementation : TestGuildsFromEvents.java
Copyright Apache License 2.0
Author : princesslana
Copyright Apache License 2.0
Author : princesslana
@Ignore
private GuildMember simpleCreateGuildMember(Snowflake guildId) {
GuildMember member = DataFaker.guildMember();
events.onNext(GuildMemberAddEvent.of(new GuildMemberWithGuildId(guildId, member)));
return member;
}
15
View Complete Implementation : TestGuildsFromEvents.java
Copyright Apache License 2.0
Author : princesslana
Copyright Apache License 2.0
Author : princesslana
@Ignore
private Role simpleCreateRole(Snowflake guildId) {
Role role = DataFaker.role();
events.onNext(GuildRoleCreateEvent.of(ImmutableGuildRoleCreateEventData.builder().guildId(guildId).role(role).build()));
return role;
}
14
View Complete Implementation : CosmosPartitionKeyTests.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "simple" })
public void testNonParreplacedionedCollectionOperations() throws Exception {
createContainerWithoutPk();
CosmosContainer createdContainer = createdDatabase.getContainer(NON_PARreplacedIONED_CONTAINER_ID);
Mono<CosmosItemResponse> readMono = createdContainer.gereplacedem(NON_PARreplacedIONED_CONTAINER_DOCUEMNT_ID, ParreplacedionKey.None).read();
CosmosResponseValidator<CosmosItemResponse> validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().withId(NON_PARreplacedIONED_CONTAINER_DOCUEMNT_ID).build();
validateSuccess(readMono, validator);
String createdItemId = UUID.randomUUID().toString();
Mono<CosmosItemResponse> createMono = createdContainer.createItem(new CosmosItemProperties("{'id':'" + createdItemId + "'}"));
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().withId(createdItemId).build();
validateSuccess(createMono, validator);
readMono = createdContainer.gereplacedem(createdItemId, ParreplacedionKey.None).read();
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().withId(createdItemId).build();
validateSuccess(readMono, validator);
CosmosItem itemToReplace = createdContainer.gereplacedem(createdItemId, ParreplacedionKey.None).read().block().item();
CosmosItemProperties itemSettingsToReplace = itemToReplace.read().block().properties();
String replacedItemId = UUID.randomUUID().toString();
itemSettingsToReplace.id(replacedItemId);
Mono<CosmosItemResponse> replaceMono = itemToReplace.replace(itemSettingsToReplace);
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().withId(replacedItemId).build();
validateSuccess(replaceMono, validator);
String upsertedItemId = UUID.randomUUID().toString();
Mono<CosmosItemResponse> upsertMono = createdContainer.upserreplacedem(new CosmosItemProperties("{'id':'" + upsertedItemId + "'}"));
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().withId(upsertedItemId).build();
validateSuccess(upsertMono, validator);
// one doreplacedent was created during setup, one with create (which was replaced) and one with upsert
FeedOptions feedOptions = new FeedOptions();
feedOptions.parreplacedionKey(ParreplacedionKey.None);
ArrayList<String> expectedIds = new ArrayList<String>();
expectedIds.add(NON_PARreplacedIONED_CONTAINER_DOCUEMNT_ID);
expectedIds.add(replacedItemId);
expectedIds.add(upsertedItemId);
Flux<FeedResponse<CosmosItemProperties>> queryFlux = createdContainer.queryItems("SELECT * from c", feedOptions);
FeedResponseListValidator<CosmosItemProperties> queryValidator = new FeedResponseListValidator.Builder<CosmosItemProperties>().totalSize(3).numberOfPages(1).containsExactlyIds(expectedIds).build();
validateQuerySuccess(queryFlux, queryValidator);
queryFlux = createdContainer.readAllItems(feedOptions);
queryValidator = new FeedResponseListValidator.Builder<CosmosItemProperties>().totalSize(3).numberOfPages(1).containsExactlyIds(expectedIds).build();
validateQuerySuccess(queryFlux, queryValidator);
String doreplacedentCreatedBySprocId = "testDoc";
CosmosStoredProcedureProperties sproc = new CosmosStoredProcedureProperties("{" + " 'id': '" + UUID.randomUUID().toString() + "'," + " 'body':'" + " function() {" + " var client = getContext().getCollection();" + " var doc = client.createDoreplacedent(client.getSelfLink(), { \\'id\\': \\'" + doreplacedentCreatedBySprocId + "\\'}, {}, function(err, docCreated, options) { " + " if(err) throw new Error(\\'Error while creating doreplacedent: \\' + err.message);" + " else {" + " getContext().getResponse().setBody(1);" + " }" + " });" + "}'" + "}");
CosmosStoredProcedure createdSproc = createdContainer.getScripts().createStoredProcedure(sproc).block().storedProcedure();
// Parreplacedon Key value same as what is specified in the stored procedure body
RequestOptions options = new RequestOptions();
options.setParreplacedionKey(ParreplacedionKey.None);
int result = Integer.parseInt(createdSproc.execute(null, new CosmosStoredProcedureRequestOptions()).block().responsereplacedtring());
replacedertThat(result).isEqualTo(1);
// 3 previous items + 1 created from the sproc
expectedIds.add(doreplacedentCreatedBySprocId);
queryFlux = createdContainer.readAllItems(feedOptions);
queryValidator = new FeedResponseListValidator.Builder<CosmosItemProperties>().totalSize(4).numberOfPages(1).containsExactlyIds(expectedIds).build();
validateQuerySuccess(queryFlux, queryValidator);
Mono<CosmosItemResponse> deleteMono = createdContainer.gereplacedem(upsertedItemId, ParreplacedionKey.None).delete();
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().nullResource().build();
validateSuccess(deleteMono, validator);
deleteMono = createdContainer.gereplacedem(replacedItemId, ParreplacedionKey.None).delete();
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().nullResource().build();
validateSuccess(deleteMono, validator);
deleteMono = createdContainer.gereplacedem(NON_PARreplacedIONED_CONTAINER_DOCUEMNT_ID, ParreplacedionKey.None).delete();
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().nullResource().build();
validateSuccess(deleteMono, validator);
deleteMono = createdContainer.gereplacedem(doreplacedentCreatedBySprocId, ParreplacedionKey.None).delete();
validator = new CosmosResponseValidator.Builder<CosmosItemResponse>().nullResource().build();
validateSuccess(deleteMono, validator);
queryFlux = createdContainer.readAllItems(feedOptions);
queryValidator = new FeedResponseListValidator.Builder<CosmosItemProperties>().totalSize(0).numberOfPages(1).build();
validateQuerySuccess(queryFlux, queryValidator);
}
13
View Complete Implementation : GatewayAddressCacheTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME times out inconsistently
@Ignore
@Test(groups = { "direct" }, timeOut = TIMEOUT)
public void tryGetAddresses_ForMasterParreplacedion_ForceRefresh() throws Exception {
Configs configs = new Configs();
HttpClientUnderTestWrapper clientWrapper = getHttpClientUnderTestWrapper(configs);
URL serviceEndpoint = new URL(TestConfigurations.HOST);
IAuthorizationTokenProvider authorizationTokenProvider = (RxDoreplacedentClientImpl) client;
GatewayAddressCache cache = new GatewayAddressCache(serviceEndpoint, Protocol.HTTPS, authorizationTokenProvider, null, clientWrapper.getSpyHttpClient());
RxDoreplacedentServiceRequest req = RxDoreplacedentServiceRequest.create(OperationType.Create, ResourceType.Database, "/dbs", new Database(), new HashMap<>());
ParreplacedionKeyRangeIdenreplacedy parreplacedionKeyRangeIdenreplacedy = new ParreplacedionKeyRangeIdenreplacedy("M");
// request master parreplacedion info to ensure it is cached.
AddressInformation[] expectedAddresses = cache.tryGetAddresses(req, parreplacedionKeyRangeIdenreplacedy, false).block().v;
replacedertThat(clientWrapper.capturedRequests).asList().hreplacedize(1);
clientWrapper.capturedRequests.clear();
Mono<Utils.ValueHolder<AddressInformation[]>> addressesObs = cache.tryGetAddresses(req, parreplacedionKeyRangeIdenreplacedy, true);
AddressInformation[] actualAddresses = getSuccessResult(addressesObs, TIMEOUT).v;
replacedertExactlyEqual(actualAddresses, expectedAddresses);
// the cache address is used. no new http request is sent
replacedertThat(clientWrapper.capturedRequests).asList().hreplacedize(1);
}
13
View Complete Implementation : StoredProcedureUpsertReplaceTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test times out inconsistently
@Ignore
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void executeStoredProcedure() throws Exception {
// create a stored procedure
CosmosStoredProcedureProperties storedProcedureDef = BridgeInternal.createCosmosStoredProcedureProperties("{" + " 'id': '" + UUID.randomUUID().toString() + "'," + " 'body':" + " 'function () {" + " for (var i = 0; i < 10; i++) {" + " getContext().getResponse().appendValue(\"Body\", i);" + " }" + " }'" + "}");
CosmosStoredProcedure storedProcedure = null;
storedProcedure = createdCollection.getScripts().createStoredProcedure(storedProcedureDef, new CosmosStoredProcedureRequestOptions()).block().storedProcedure();
String result = null;
CosmosStoredProcedureRequestOptions options = new CosmosStoredProcedureRequestOptions();
options.parreplacedionKey(ParreplacedionKey.None);
result = storedProcedure.execute(null, options).block().responsereplacedtring();
replacedertThat(result).isEqualTo("\"0123456789\"");
}
12
View Complete Implementation : ModelConverterTest.java
Copyright Apache License 2.0
Author : swagger-api
Copyright Apache License 2.0
Author : swagger-api
@Test
@Ignore
public void directPropertiesRecognized() {
final Map<String, Schema> models = ModelConverters.getInstance().read(AnnotatedBaseClreplaced.clreplaced);
final Schema model = models.get("AnnotatedBaseClreplaced");
replacedertNotNull(model);
replacedertEquals(model.getName(), "AnnotatedBaseClreplaced");
replacedertNotNull(model.getProperties());
replacedertEquals(model.getProperties().size(), 1);
}
11
View Complete Implementation : DocumentCrudTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "simple" }, timeOut = TIMEOUT, dataProvider = "doreplacedentCrudArgProvider")
public void timestamp(String doreplacedentId) throws Exception {
OffsetDateTime before = OffsetDateTime.now();
CosmosItemProperties docDefinition = getDoreplacedentDefinition(doreplacedentId);
Thread.sleep(1000);
CosmosItem doreplacedent = container.createItem(docDefinition, new CosmosItemRequestOptions()).block().item();
waitIfNeededForReplicasToCatchUp(clientBuilder());
CosmosItemRequestOptions options = new CosmosItemRequestOptions();
options.parreplacedionKey(new ParreplacedionKey(docDefinition.get("mypk")));
CosmosItemProperties readDoreplacedent = doreplacedent.read(options).block().properties();
Thread.sleep(1000);
OffsetDateTime after = OffsetDateTime.now();
replacedertThat(readDoreplacedent.timestamp()).isAfterOrEqualTo(before);
replacedertThat(readDoreplacedent.timestamp()).isBeforeOrEqualTo(after);
}
10
View Complete Implementation : DCDocumentCrudTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME: Times out
@Ignore
@Test(groups = { "direct" }, timeOut = QUERY_TIMEOUT)
public void crossParreplacedionQuery() {
truncateCollection(createdCollection);
waitIfNeededForReplicasToCatchUp(clientBuilder());
client.getCapturedRequests().clear();
int cnt = 1000;
List<Doreplacedent> doreplacedentList = new ArrayList<>();
for (int i = 0; i < cnt; i++) {
Doreplacedent docDefinition = getDoreplacedentDefinition();
doreplacedentList.add(docDefinition);
}
doreplacedentList = bulkInsert(client, getCollectionLink(), doreplacedentList).map(ResourceResponse::getResource).collectList().single().block();
waitIfNeededForReplicasToCatchUp(clientBuilder());
FeedOptions options = new FeedOptions();
options.enableCrossParreplacedionQuery(true);
options.maxDegreeOfParallelism(-1);
options.maxItemCount(100);
Flux<FeedResponse<Doreplacedent>> results = client.queryDoreplacedents(getCollectionLink(), "SELECT * FROM r", options);
FeedResponseListValidator<Doreplacedent> validator = new FeedResponseListValidator.Builder<Doreplacedent>().totalSize(doreplacedentList.size()).exactlyContainsInAnyOrder(doreplacedentList.stream().map(Doreplacedent::resourceId).collect(Collectors.toList())).build();
validateQuerySuccess(results, validator, QUERY_TIMEOUT);
validateNoDoreplacedentQueryOperationThroughGateway();
// validates only the first query for fetching query plan goes to gateway.
replacedertThat(client.getCapturedRequests().stream().filter(r -> r.getResourceType() == ResourceType.Doreplacedent)).hreplacedize(1);
}
10
View Complete Implementation : TriggerCrudTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test is flaky
@Ignore
@Test(groups = { "simple" }, timeOut = TIMEOUT)
public void deleteTrigger() throws Exception {
// create a trigger
CosmosTriggerProperties trigger = new CosmosTriggerProperties();
trigger.id(UUID.randomUUID().toString());
trigger.body("function() {var x = 10;}");
trigger.triggerOperation(TriggerOperation.CREATE);
trigger.triggerType(TriggerType.PRE);
CosmosTrigger readBackTrigger = createdCollection.getScripts().createTrigger(trigger).block().trigger();
// delete trigger
Mono<CosmosResponse> deleteObservable = readBackTrigger.delete();
// validate delete trigger
CosmosResponseValidator<CosmosResponse> validator = new CosmosResponseValidator.Builder<CosmosResponse>().nullResource().build();
validateSuccess(deleteObservable, validator);
}
7
View Complete Implementation : ReplicatedResourceClientPartitionSplitTest.java
Copyright MIT License
Author : Azure
Copyright MIT License
Author : Azure
// FIXME test times out inconsistently
@Ignore
@Test(groups = { "unit" }, dataProvider = "parreplacedionIsSplittingArgProvider", timeOut = TIMEOUT)
public void parreplacedionSplit_RefreshCache_Read(ConsistencyLevel consistencyLevel, int parreplacedionIsSplitting) {
URI secondary1AddressBeforeMove = URI.create("secondary");
URI secondary1AddressAfterMove = URI.create("secondaryNew");
URI primaryAddressBeforeMove = URI.create("primary");
URI primaryAddressAfterMove = URI.create("primaryNew");
String parreplacedionKeyRangeIdBeforeSplit = "1";
String parreplacedionKeyRangeIdAfterSplit = "2";
AddressSelectorWrapper addressSelectorWrapper = AddressSelectorWrapper.Builder.ReplicaMoveBuilder.create(Protocol.HTTPS).withPrimaryMove(primaryAddressBeforeMove, primaryAddressAfterMove).withSecondaryMove(secondary1AddressBeforeMove, secondary1AddressAfterMove).newParreplacedionKeyRangeIdOnRefresh(r -> parreplacedionKeyRangeWithId(parreplacedionKeyRangeIdAfterSplit)).build();
long lsn = 54;
long localLsn = 18;
StoreResponse primaryResponse = StoreResponseBuilder.create().withLSN(lsn).withLocalLSN(localLsn).withHeader(WFConstants.BackendHeaders.QUORUM_ACKED_LOCAL_LSN, Long.toString(localLsn)).withHeader(WFConstants.BackendHeaders.CURRENT_REPLICA_SET_SIZE, parreplacedionKeyRangeIdAfterSplit).withRequestCharge(1.1).build();
StoreResponse secondaryResponse1 = StoreResponseBuilder.create().withLSN(lsn).withLocalLSN(localLsn).withHeader(WFConstants.BackendHeaders.QUORUM_ACKED_LOCAL_LSN, Long.toString(localLsn)).withHeader(WFConstants.BackendHeaders.CURRENT_REPLICA_SET_SIZE, parreplacedionKeyRangeIdAfterSplit).withRequestCharge(1.1).build();
TransportClientWrapper.Builder.UriToResultBuilder transportClientWrapperBuilder = TransportClientWrapper.Builder.uriToResultBuilder();
ParreplacedionKeyRangeIsSplittingException splittingException = new ParreplacedionKeyRangeIsSplittingException();
if (parreplacedionIsSplitting == Integer.MAX_VALUE) {
transportClientWrapperBuilder.exceptionOn(primaryAddressBeforeMove, OperationType.Read, ResourceType.Doreplacedent, splittingException, true).exceptionOn(secondary1AddressBeforeMove, OperationType.Read, ResourceType.Doreplacedent, splittingException, true);
} else {
for (int i = 0; i < parreplacedionIsSplitting; i++) {
transportClientWrapperBuilder.exceptionOn(primaryAddressBeforeMove, OperationType.Read, ResourceType.Doreplacedent, splittingException, false).exceptionOn(secondary1AddressBeforeMove, OperationType.Read, ResourceType.Doreplacedent, splittingException, false);
}
}
GoneException goneException = new GoneException();
transportClientWrapperBuilder.exceptionOn(primaryAddressBeforeMove, OperationType.Read, ResourceType.Doreplacedent, goneException, true).exceptionOn(secondary1AddressBeforeMove, OperationType.Read, ResourceType.Doreplacedent, goneException, true).storeResponseOn(primaryAddressAfterMove, OperationType.Read, ResourceType.Doreplacedent, secondaryResponse1, true).storeResponseOn(secondary1AddressAfterMove, OperationType.Read, ResourceType.Doreplacedent, primaryResponse, true);
TransportClientWrapper transportClientWrapper = transportClientWrapperBuilder.build();
GatewayServiceConfiguratorReaderMock gatewayServiceConfigurationReaderWrapper = GatewayServiceConfiguratorReaderMock.from(ConsistencyLevel.STRONG, 4, 3, 4, 3);
SessionContainer sessionContainer = new SessionContainer("test");
IAuthorizationTokenProvider authorizationTokenProvider = Mockito.mock(IAuthorizationTokenProvider.clreplaced);
ReplicatedResourceClient resourceClient = new ReplicatedResourceClient(new Configs(), addressSelectorWrapper.addressSelector, sessionContainer, transportClientWrapper.transportClient, gatewayServiceConfigurationReaderWrapper.gatewayServiceConfigurationReader, authorizationTokenProvider, false, false);
RxDoreplacedentServiceRequest request = RxDoreplacedentServiceRequest.createFromName(OperationType.Read, "/dbs/db/colls/col/docs/docId", ResourceType.Doreplacedent);
request.requestContext = new DoreplacedentServiceRequestContext();
request.requestContext.resolvedParreplacedionKeyRange = parreplacedionKeyRangeWithId(parreplacedionKeyRangeIdBeforeSplit);
request.getHeaders().put(HttpConstants.HttpHeaders.CONSISTENCY_LEVEL, consistencyLevel.toString());
Function<RxDoreplacedentServiceRequest, Mono<RxDoreplacedentServiceRequest>> prepareRequestAsyncDelegate = null;
Mono<StoreResponse> storeResponseObs = resourceClient.invokeAsync(request, prepareRequestAsyncDelegate);
if (parreplacedionIsSplitting < Integer.MAX_VALUE) {
StoreResponseValidator validator = StoreResponseValidator.create().withBELSN(lsn).withRequestCharge(1.1).build();
validateSuccess(storeResponseObs, validator);
addressSelectorWrapper.verifyNumberOfForceCacheRefreshGreaterThanOrEqualTo(1);
} else {
FailureValidator validator = FailureValidator.builder().instanceOf(CosmosClientException.clreplaced).statusCode(503).build();
validateFailure(storeResponseObs, validator, TIMEOUT);
}
}