This section documents the MbUnit v2 API.

Namespaces

NamespaceDescription
MbUnit.Core

The MbUnit.Core namespace and child namespaces contains the kernel of MbUnit.

The MbUnit.Core.Collections namespace contains stronly typed collections.

The Exceptions namespace contains custom exception classes relative to the MbUnit framework.

The MbUnit.Framework namespace contains base class for custom attributes , for test fixtures. The custom attributes can be used to build new test fixture.

The MbUnit.Core.Invokers namespace contains invokers classes that are functor-like wrapper for fixture methods.

The MbUnit.Core.Monitoring namespace contains time and memory performance tracers.

The MbUnit.Core.Runs namespace contains run object that are generators for invoker methods.

MbUnit.Core.Collections
 
MbUnit.Core.Config
 
MbUnit.Core.Cons
 
MbUnit.Core.Cons.CommandLine
 
MbUnit.Core.Exceptions
 
MbUnit.Core.Filters
 
MbUnit.Core.Framework
 
MbUnit.Core.FrameworkBridges
 
MbUnit.Core.Graph
 
MbUnit.Core.Invokers
 
MbUnit.Core.Monitoring
 
MbUnit.Core.Reflection
 
MbUnit.Core.Remoting
 
MbUnit.Core.Reports
 
MbUnit.Core.Reports.Serialization
 
MbUnit.Core.Runs
 
MbUnit.Framework

The MbUnit.Framework contains the set of built-in attributes.

Use the static methods of Assert to test your assertions. You can also do security related assertion using SecurityAssert, data related assertions using DataAssert and XML related assertions using XmlAssert (which comes from XmlUnit, http://xmlunit.sourceforge.net) , Reflection based assertion ReflectionAssert and String and text based assertion StringAssert.

MbUnit.Framework.ComponentModel
 
MbUnit.Framework.Exceptions
 
MbUnit.Framework.Reflection
 
MbUnit.Framework.Security
 
MbUnit.Framework.Testers
 
MbUnit.Framework.Utils
 
MbUnit.Framework.Xml

The MbUnit.Framework.Xml contains Xml-specific assertion. The classes of this namespace are extracted from the XmlUnit project.

CopyC#
/*
******************************************************************
Copyright (c) 2001, Jeff Martin, Tim Bacon
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of the xmlunit.sourceforge.net nor the names
      of its contributors may be used to endorse or promote products
      derived from this software without specific prior written
      permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

*******************************************************************/
QuickGraph

The QuickGraph namespace contains default vertex and edge implementations.

QuickGraph Library License

            Copyright (c) 2004 Jonathan de Halleux
            
            This software is provided 'as-is', without any express or implied warranty. 
            
            In no event will the authors be held liable for any damages arising from 
            the use of this software.
            Permission is granted to anyone to use this software for any purpose, 
            including commercial applications, and to alter it and redistribute it 
            freely, subject to the following restrictions:
            
            1. The origin of this software must not be misrepresented; 
            you must not claim that you wrote the original software. 
            If you use this software in a product, an acknowledgment in the product 
            documentation would be appreciated but is not required.
            
            2. Altered source versions must be plainly marked as such, and must 
            not be misrepresented as being the original software.
            
            3. This notice may not be removed or altered from any source 
            distribution.
            	
            QuickGraph Library HomePage: http://www.mbunit.com
            Author: Jonathan de Halleux
            

QuickGraph.Algorithms
The QuickGraph.Algorithms namespace is the base namespace for graph algorithms.
QuickGraph.Algorithms.AllShortestPath
Collection of classes that compute the All-Shortest path problem.
QuickGraph.Algorithms.AllShortestPath.Reducers
 
QuickGraph.Algorithms.AllShortestPath.Testers
 
QuickGraph.Algorithms.Clone
The QuickGraph.Algorithms.Clone contains algorithms that create copy of graph.
QuickGraph.Algorithms.Layout
 
QuickGraph.Algorithms.MaximumFlow
The QuickGraph.Algorithms.MaximumFlow contains algorithms to compute network maximum flows. Under construction
QuickGraph.Algorithms.Metrics
The QuickGraph.Algorithms.Metrics contains metrics to caracterize traversals, trees and graphs.
QuickGraph.Algorithms.MinimumFlow
 
QuickGraph.Algorithms.RandomWalks
The QuickGraph.Algorithms.RandomWalks contains algorithm to generate random walks or trees over graphs.
QuickGraph.Algorithms.Ranking
 
QuickGraph.Algorithms.Search
The QuickGraph.Algorithms.Search namespace contains basic algorithms, such as the DepthFirstSearchAlgorithm that are the building blocks other more complex algorithms.
QuickGraph.Algorithms.ShortestPath

The QuickGraph.Algorithms.ShortestPath namespace contains algorithms for solving shortest path problems.

Graph with positive edge weight should use the DijkstraShortestPathAlgorithm.

If all the wieghts are equal to 1, the BreadthFirstSearchAlgorithm is more efficient to use.

If the weights can be negavite, use the BellmanFordShortestPathAlgorithm.

QuickGraph.Algorithms.TestGames

The implements the algorithm from the article:

Optimal Strategies for Testing Nondeterministic Systems, Lev Nachmanson Margus Veanes Wolfram Schulte Nikolai Tillmann Wolfgang Grieskamp Microsoft Research, One Microsoft Way, Redmond, WA flevnach,margus,schulte,nikolait,wrwgg@microsoft.com http://research.microsoft.com/users/schulte/Papers/OptimalStrategiesForTestingNondeterminsticSystems(ISSTA2004).pdf

QuickGraph.Algorithms.Travelling
The QuickGraph.Algorithms.Travelling namespace contains classes for solving travelling problems such as computing Eulerian trails, Chinese Postman (not yet), Travelling salesman (not yet).
QuickGraph.Algorithms.Visitors

The QuickGraph.Algorithms.Visitors namespace contains classic graph algorithm visitors.

QuickGraph.Collections

The QuickGraph.Collections namespace contains a bunch of strongly typed collections and dictionaries.

QuickGraph.Collections.Filtered

The QuickGraph.Collections.Filtered namespace contains filtered graph proxies that enables to have filtered views of graph.

Each traversal concept/interface is mapped with a corresponding filtered class.

QuickGraph.Collections.Sort
 
QuickGraph.Concepts

The QuickGraph.Concepts namespace contains all the interfaces that define the different graph concepts.

QuickGraph.Concepts.Algorithms

The QuickGraph.Concepts.Algorithms namespace contains the interfaces that define algorithm concept and behaviors.

QuickGraph.Concepts.Collections
The QuickGraph.Concepts.Collections defines strongly typed interface for iterating vertices and edges.
QuickGraph.Concepts.Modifications

The QuickGraph.Concepts.Modifications namespace contains the interfaces that implement the graph modification concepts.

QuickGraph.Concepts.MutableTraversals
 
QuickGraph.Concepts.Petri
 
QuickGraph.Concepts.Petri.Collections
 
QuickGraph.Concepts.Predicates
 
QuickGraph.Concepts.Providers

The QuickGraph.Concepts.Providers namespace contains the interfaces that define the vertex and edge provider classes.

QuickGraph.Concepts.Serialization
 
QuickGraph.Concepts.Traversals

The QuickGraph.Concepts.Traversals namespace contains the interfaces that implement the graph traversal concepts.

QuickGraph.Concepts.Visitors

The QuickGraph.Concepts.Visitors namespace contains interfaces that define "classic" visitors.

QuickGraph.Exceptions
The QuickGraph.Exceptions namespace contains graph related exceptions.
QuickGraph.Predicates
The QuickGraph.Predicates namespace contains predicate implementations for filtered graphs.
QuickGraph.Providers
The QuickGraph.Providers contains providers for the default vertex and edge implementations.
QuickGraph.Representations

The QuickGraph.Representations namespace contains implementations of the graph concepts (traversal concepts and modification concepts).

QuickGraph.Representations.Petri
 
QuickGraph.Representations.Petri.Collections
 
QuickGraph.Serialization
 
QuickGraph.Serialization.GraphML
The QuickGraph.Serialization.GraphML contains the classes that map the GraphML schema.
Refly
 
Refly.CodeDom
 
Refly.CodeDom.Collections
 
Refly.CodeDom.Doc
 
Refly.CodeDom.Expressions
 
Refly.CodeDom.Statements
 
Refly.Templates
 
TestFu.Data

The TestFu.Data namespace contains a Random DataRow generator to help developer test databases, data layers, business layers, etc...

TestFu.Data.Adapters
 
TestFu.Data.Collections
 
TestFu.Data.Generators
 
TestFu.Data.Graph
 
TestFu.Data.Populators
 
TestFu.Data.SqlClient
 
TestFu.Forms
 
TestFu.Gestures

The TestFu.Gestures namespace contains classes (IGesture instances) to simulate user mouse and keyboard interactions.

The user interaction are simulated by using native methods mouse_event and keybd_event.

The GestureFactory can be used to rapidly generate IGesture instances.

The gestures should not be executed in the main thread but in a worker thread. Otherwize, you will miss message notifications. All gesture methods on Control and Form are thread safe.

TestFu.Grammars

The TestFu.Grammars namespace contains a framwork for implementing Production Grammars.

TestFu.Operations