/*
* Copyright (c) 2002-2017 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
* This file is part of Neo4j.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.neo4j.driver.v1.tck;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Then;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import org.neo4j.driver.v1.Record;
import org.neo4j.driver.v1.Session;
import org.neo4j.driver.v1.Value;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.neo4j.driver.v1.tck.Environment.driver;
public class DriverEqualitySteps
{
HashMap<String,Value> savedValues = new HashMap<>();
@And( "^`(.*)` is single value result of: (.*)$" )
public void valueIsSingleValueResultOfMATCHNLabelRETURNN( String key, String statement ) throws Throwable
{
try ( Session session = driver.session())
{
Record r = session.run( statement ).single();
assertThat( r.size(), equalTo( 1 ) );
savedValues.put( key, r.get( 0 ) );
}
}
@Then( "^saved values should all equal$" )
public void savedValuesShouldAllEqual() throws Throwable
{
assertTrue( savedValues.values().size() > 1 );
Collection values = savedValues.values();
Iterator<Value> itr = values.iterator();
Value v = itr.next();
while ( itr.hasNext() )
{
assertThat( v, equalTo( itr.next() ) );
}
}
@Then( "^none of the saved values should be equal$" )
public void noneOfTheSavedValuesShouldBeEqual() throws Throwable
{
assertTrue( savedValues.values().size() > 1 );
Collection values = savedValues.values();
Iterator<Value> itr = values.iterator();
Value v = itr.next();
while ( itr.hasNext() )
{
assertThat( v, not(equalTo( itr.next() ) ) );
}
}
}