Package org.ontoware.rdf2go.model

Source Code of org.ontoware.rdf2go.model.NotifyingModelSetTest

/*
* LICENSE INFORMATION
* Copyright 2005-2007 by FZI (http://www.fzi.de).
* Licensed under a BSD license (http://www.opensource.org/licenses/bsd-license.php)
* <OWNER> = Max V�lkel
* <ORGANIZATION> = FZI Forschungszentrum Informatik Karlsruhe, Karlsruhe, Germany
* <YEAR> = 2007
*
* Project information at http://semweb4j.org/rdf2go
*/

package org.ontoware.rdf2go.model;

import org.ontoware.rdf2go.ModelFactory;
import org.ontoware.rdf2go.RDF2Go;
import org.ontoware.rdf2go.model.impl.NotifyingModelSetLayer;
import org.ontoware.rdf2go.model.impl.QuadPatternImpl;
import org.ontoware.rdf2go.model.node.URI;
import org.ontoware.rdf2go.model.node.Variable;
import org.ontoware.rdf2go.model.node.impl.PlainLiteralImpl;
import org.ontoware.rdf2go.model.node.impl.URIImpl;
import static org.junit.Assert.*;

public class NotifyingModelSetTest extends AbstractModelSetTest
{
  private NotifyingModelSetLayer model;
  public static URI context1 = new URIImpl("test://test/context_1");
  public static URI context2 = new URIImpl("test://test/context_2");
 
  public NotifyingModelSetTest()
  {
   
  }
 
  @Override
  public ModelFactory getModelFactory()
  {
    return RDF2Go.getModelFactory();
  }
 
 
  @Override
  public void setUp()
  {
    super.setUp();
    ModelSet plainModel = getModelFactory().createModelSet();
    assertNotNull(plainModel);
    this.model = new NotifyingModelSetLayer(plainModel);
  }
 
  public void testModelConnection()
  {
    assertNotNull(this.model);
    assertNotNull(this.model.getDelegatedModelSet());
    assertFalse(this.model.isOpen());
    this.model.open();
    assertTrue(this.model.isOpen());
    this.model.close();
    assertFalse(this.model.isOpen());
  }
 
  public void testContextNotification()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {
      @Override
      public void addedStatement(Statement statement)
      {
        assertEquals(context1, statement.getContext());
        assertEquals(subject, statement.getSubject());
        assertEquals(predicate, statement.getPredicate());
        assertEquals(object, statement.getObject());
      }

    };
    QuadPattern pattern = new QuadPatternImpl(context1, Variable.ANY, Variable.ANY, Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, subject, predicate, object);
    this.model.close();
  }
 
  public void testContextNotification2()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {};
    QuadPattern pattern = new QuadPatternImpl(context1, Variable.ANY, Variable.ANY, Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context2, subject, predicate, object);
    this.model.close();
  }
 
  public void testSubjectNotification()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {
      @Override
      public void addedStatement(Statement statement)
      {
        assertEquals(context1, statement.getContext());
        assertEquals(subject, statement.getSubject());
        assertEquals(predicate, statement.getPredicate());
        assertEquals(object, statement.getObject());
      }
    };
    QuadPattern pattern = new QuadPatternImpl(Variable.ANY, subject, Variable.ANY, Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, subject, predicate, object);
    this.model.close();
  }
 
  public void testSubjectNotification2()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {};
    QuadPattern pattern = new QuadPatternImpl(Variable.ANY, subject, Variable.ANY, Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, predicate, object, subject);
    this.model.close();
  }
 
 
  public void testLiteralNotification()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {
      @Override
      public void addedStatement(Statement statement)
      {
        assertEquals(context1, statement.getContext());
        assertEquals(subject, statement.getSubject());
        assertEquals(predicate, statement.getPredicate());
        assertEquals(new PlainLiteralImpl("Sebastian Gerke"), statement.getObject());
      }
    };
    QuadPattern pattern = new QuadPatternImpl(Variable.ANY, Variable.ANY, Variable.ANY, new PlainLiteralImpl("Sebastian Gerke"));
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, subject, predicate, new PlainLiteralImpl("Sebastian Gerke"));
    this.model.close();
  }
 
 
  public void testLiteralNotification2()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {};
    QuadPattern pattern = new QuadPatternImpl(Variable.ANY, Variable.ANY, Variable.ANY, new PlainLiteralImpl("Sebastian"));
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, subject, predicate, new PlainLiteralImpl("Sebastian Gerke"));
    this.model.close();
  }
 
  public void testContextAndSubjectNotification()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {
      @Override
      public void addedStatement(Statement statement)
      {
        assertEquals(context1, statement.getContext());
        assertEquals(subject, statement.getSubject());
        assertEquals(predicate, statement.getPredicate());
        assertEquals(object, statement.getObject());
      }
    };
    QuadPattern pattern = new QuadPatternImpl(context1, subject, Variable.ANY, Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, subject, predicate, object);
    this.model.close();
  }
 
  public void testContextAndSubjectNotification2()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {};
    QuadPattern pattern = new QuadPatternImpl(context1, subject, Variable.ANY, Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, predicate, object, subject);
    this.model.close();
  }
 
  public void testContextAndSubjectNotification3()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {};
    QuadPattern pattern = new QuadPatternImpl(context1, subject, Variable.ANY, Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context2, subject, predicate, object);
    this.model.close();
  }
 
  public void testPredicateNotification()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {
      @Override
      public void addedStatement(Statement statement)
      {
        assertEquals(context1, statement.getContext());
        assertEquals(subject, statement.getSubject());
        assertEquals(predicate, statement.getPredicate());
        assertEquals(object, statement.getObject());
      }
    };
    QuadPattern pattern = new QuadPatternImpl(Variable.ANY, Variable.ANY, predicate,  Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, subject, predicate, object);
    this.model.close();
  }
 
  public void testPredicateNotification2()
  {
    ModelChangedListener listener = new AbstractModelChangeListener() {};
    QuadPattern pattern = new QuadPatternImpl(Variable.ANY, Variable.ANY, predicate,  Variable.ANY);
    this.model.addModelSetChangedListener(listener, pattern);
    this.model.open();
    this.model.addStatement(context1, predicate, object, subject);
    this.model.close();
  }

}
TOP

Related Classes of org.ontoware.rdf2go.model.NotifyingModelSetTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.