blob: 345317515e3d635b80f673f9ebf863875e06a10c [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>White Box Tests Source Description</title>
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le JavaScript -->
<script src="/assets/js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="/assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
<script src="/assets/js/jquery.tweet.js" type="text/javascript"></script>
<script src="/assets/js/application.js" type="text/javascript"></script>
<script src="/assets/js/bootstrap-transition.js"></script>
<script src="/assets/js/bootstrap-alert.js"></script>
<script src="/assets/js/bootstrap-modal.js"></script>
<script src="/assets/js/bootstrap-scrollspy.js"></script>
<script src="/assets/js/bootstrap-tab.js"></script>
<script src="/assets/js/bootstrap-tooltip.js"></script>
<script src="/assets/js/bootstrap-popover.js"></script>
<script src="/assets/js/bootstrap-button.js"></script>
<script src="/assets/js/bootstrap-collapse.js"></script>
<script src="/assets/js/bootstrap-carousel.js"></script>
<script src="/assets/js/bootstrap-typeahead.js"></script>
<!-- Le styles -->
<link href="/assets/css/bootstrap.css" rel="stylesheet">
<link href="/assets/css/application.css" rel="stylesheet">
<link rel="shortcut icon" href="/assets/img/favicon.ico">
</head>
<body><div style="background: red"><h1>2015/07/20 - Apache Deltacloud has been retired. </h1><h2>For more information, please explore the <a href="http://attic.apache.org/">Attic</a>. </h2></div>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/"><img src="/assets/img/logo.png" width="152"
alt="Deltacloud API"/></a>
<ul class="nav top-nav">
<li><a href="/">Home</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/about.html">What is Deltacloud?</a></li>
<li><a href="/drivers.html#drivers">Supported Providers</a></li>
</ul>
</li>
<li><a href="/download.html">Download</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Installation<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/install-deltacloud.html">Install Deltacloud</a></li>
<li><a href="/run-deltacloud-server.html">Run the Deltacloud Server</a></li>
</ul>
</li>
<li class="dropdown">
<a href="/usage.html" class="dropdown-toggle" data-toggle="dropdown">Usage<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/usage.html#usingapi">Using API</a></li>
<li><a href="/usage.html#clients">Client Libraries</a></li>
<li><a href="/command-tools.html">Command Line Tools</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Contribute<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/getting-sources.html">Getting Sources</a></li>
<li><a href="/how-to-contribute.html">How Can I Contribute?</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">API<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/rest-api.html">Deltacloud REST API</a></li>
<li><a href="/curl-examples.html">Deltacloud API cURL examples</a></li>
<li><a href="/drivers.html">Drivers API</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">CIMI<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/cimi-rest.html">CIMI REST API</a></li>
<li><a href="/cimi-curl.html">CIMI cURL Examples</a></li>
</ul>
</li>
<li><a href="/contact.html">Contact</a></li>
</ul>
</div>
</div>
</div>
<div class="container content">
<p><br></p>
<ul class="breadcrumb">
<li>
<a href="white-box-tests.html">White Box Tests?</a> <span class="divider">/</span>
</li>
<li class="active">White Box Tests Source Description</li>
</ul>
<h3>Where Are The White Box Tests:</h3>
<p>The following depicts where in the deltacloud directory source structure the
white box tests are located:</p>
<div class="row">
<div class="span1"></div>
<div class="span10 offset1">
<pre>
deltacloud
|-----------------------------------------------------------------------------
|-d--&gt; server
|---------------------------------------------------------------------------
|-d--&gt;tests Contains unit tests for drivers
|---------------------------------------------------------------------------
|-d--&gt;cimi Contains Frontend CIMI tests
|-------------------------------------------------------------------------
|-d--&gt;deltacloud Contains Frontend deltacloud tests
|-------------------------------------------------------------------------
|-d--&gt;ec2 Contains Frontend ec2 tests
|-------------------------------------------------------------------------
|-d--&gt;drivers Contains Backend driver gem tests
|-------------------------------------------------------------------------
|-d--&gt;base
|-d--&gt;ec2
|-d--&gt;fgcp
|-d--&gt;gogrid
|-d--&gt;google Contains the varios driver tests
|-d--&gt;mock and
|-d--&gt;models VCR YAML fixtures
|-d--&gt;openstack
|-d--&gt;rhevm
|-------------------------------------------------------------------------
|-d--&gt;helpers Contains helper code common to multiple tests
|-------------------------------------------------------------------------
|-f--&gt;test_helper.rb Contains the common test helper routes
|-------------------------------------------------------------------------
</pre>
</div>
</div>
<p><br></p>
<h3>Driver tests</h3>
<u><b>REPO</b>/deltacloud/server/tests/drivers</u>
<p><br></p>
<p>
This directory provides all the <i><b>driver</b></i> tests. Each driver tests is
placed into a separate directory with the driver name. Everything that touchs
the driver API goes here as well. It is good practice to divide the tests into
logical collections, in this case driver methods.
</p>
<p>
Driver tests use the Deltacloud::new method to create new instance of a driver.
This method is usually called in a <i>before</i> block and takes two parameters:
<i>driver name</i> and <i>credentials</i>. The driver methods can be called
directly on the instance of Deltacloud::new.
</p>
<p>
Some driver tests may use the <a href="https://github.com/vcr/vcr">VCR</a> gem
to record and then mock the real communication with the backend server. The fixtures
are maintained in the <i>tests/drivers/<b>DRIVER</b>/fixtures</i> directory.
</p>
<p>
For more informations about recording, look at the file: <i>tests/drivers/ec2/common.rb</i>,
<a href="why-update-vcr-test-fixtures-data.html">Why Updating the VCR Fixtures</a>
and <a href="update-vcr-test-fixtures-data-example.html">Updating VCR Fixtures Example</a>
</p>
<h3>Test Helpers</h3>
<u><b>REPO</b>/deltacloud/server/tests/helpers</u>
<p><br></p>
<p>
The <i>base</i> directory contain tests for Deltacloud::Driver class and the Library
class.
</p>
<h3>Frontend tests</h3>
<p>
In addition to the default <i>deltacloud</i> frontend Deltacloud may also
operate using different frontends. In this case, instead of exposing the
DC API specification to the client, Deltacloud will provide its drivers
API through different frontends (like CIMI or Amazon EC2).
</p>
<p>
Some tests might use the Mock driver to call the <i>control</i> blocks in Rabbit
collections. These tests are <b>not</b> driver tests, they just use the mock
driver to make sure the Rabbit operation <i>control blocks</i> works as expected
and they provide expected output.
</p>
<u><b>REPO</b>/deltacloud/server/tests/deltacloud</u>
<p>
This directory provides tests for Deltacloud API frontend. It contains tests
for collections that this frontend provides and also tests helpers that this
frontend use.
</p>
<u><b>REPO</b>/deltacloud/server/tests/ec2</u>
<p>
This directory provides tests for the EC2 frontend. Tests make sure that mapping
between EC2 actions and Deltacloud driver API works correctly. All tests
relevant to EC2 frontend tests should go here. **NOTE** this directory does not
provide Amazon EC2 driver tests.
</p>
<u><b>REPO</b>/deltacloud/server/tests/cimi</u>
<p>
This directory provides tests for the CIMI frotend. They make sure that
JSON/XML serialization of the CIMI models works correctly. Also there are tests
to make sure the output provided by CIMI collections is correct.
</p>
<footer class="footer">
<p class="pull-right"><span class='icon-circle-arrow-up'>&nbsp;</span><a href="#">Back to top</a></p>
<div class='row'>
<div class='span3'>
<img src="/assets/img/asf.png" alt="Apache Software Foundation"/>
</div>
<div class='span9'>
<strong>Apache Deltacloud</strong> is a top-level project at the <a
href="http://www.apache.org">Apache Software Foundation</a>,
having graduated from the ASF Incubator in October
2011. Through a collaborative and meritocratic development process, Apache
projects deliver enterprise-grade, freely available software products that
attract large communities of users.
</div>
</div>
</footer>
</div> <!-- /container -->
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://stats.salasaga.org/aeolus/piwik/" : "http://stats.salasaga.org/aeolus/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://stats.salasaga.org/aeolus/piwik/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Tracking Code -->
</body>
</html>