You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/09/02 16:27:34 UTC

[03/13] usergrid git commit: Moving the Javascript SDK to https://github.com/apache/usergrid-javascript.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/tests/test.html
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/tests/test.html b/sdks/html5-javascript/tests/test.html
deleted file mode 100755
index 66391d2..0000000
--- a/sdks/html5-javascript/tests/test.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
--->
-
-<!DOCTYPE html>
-<html>
-   <head>
-      <title>Readme File Tests</title>
-      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-      <link rel="stylesheet" href="resources/css/bootstrap-combined.min.css" />
-      <link rel="stylesheet" href="resources/css/styles.css" />
-      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
-      <script src="../usergrid.js" type="text/javascript"></script>
-      <script src="test.js" type="text/javascript"></script>
-      <script type="text/javascript">
-
-      </script>
-   </head>
-   <body>
-      <div class="header">
-         <img src="resources/images/apigee.png"> App Services (Usergrid) Javascript SDK
-      </div>
-      <div class="info">
-      This sample application runs tests on the sample code examples in the readme file.  Tests are run against App Services (Usergrid) using the Usergrid Javascript SDK.
-      </div>
-    <div id="main" class="main">
-      <div class="section-header">README sample code tests</div>
-      <div class="well">
-        <div id="name-control" class="control-group">
-          <div class="controls">
-            <button class="btn btn-primary" id="start-button" style="width: 90px;">Start</button>
-            <span style="clear: both;">&nbsp;</span>
-          </div>
-        </div>
-      </div>
-      <div class="section-header"><b>Test Output</b></div>
-      <div class="well">
-        <pre id="test-output">// Press Start button to begin</pre>
-      </div>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/tests/test.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/tests/test.js b/sdks/html5-javascript/tests/test.js
deleted file mode 100755
index f726680..0000000
--- a/sdks/html5-javascript/tests/test.js
+++ /dev/null
@@ -1,927 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements.  See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You 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.
-//
-
-/**
-* Test suite for all the examples in the readme
-*
-* NOTE: No, this test suite doesn't use the traditional format for
-* a test suite.  This is because the goal is to require as little
-* alteration as possible during the copy / paste operation from this test
-* suite to the readme file.
-*
-* @author rod simpson (rod@apigee.com)
-*/
-
-$(document).ready(function () {
-
-//call the runner function to start the process
-$('#start-button').bind('click', function() {
-	$('#start-button').attr("disabled", "disabled");
-	$('#test-output').html('');
-	runner(0);
-});
-
-var logSuccess = true;
-var successCount = 0;
-var logError = true;
-var errorCount = 0;
-var logNotice = true;
-var _username = 'marty2';
-var _email = 'marty2@timetravel.com';
-var _password = 'password2';
-var _newpassword = 'password3';
-
-var client = new Usergrid.Client({
-	orgName:'yourorgname',
-	appName:'sandbox',
-	logging: true, //optional - turn on logging, off by default
-	buildCurl: true //optional - turn on curl commands, off by default
-});
-
-client.logout();
-
-function runner(step, arg, arg2){
-	step++;
-	switch(step)
-	{
-		case 1:
-			notice('-----running step '+step+': DELETE user from DB to prep test');
-			clearUser(step);
-			break;
-		case 2:
-			notice('-----running step '+step+': GET test');
-			testGET(step);
-			break;
-		case 3:
-			notice('-----running step '+step+': POST test');
-			testPOST(step);
-			break;
-		case 4:
-			notice('-----running step '+step+': PUT test');
-			testPUT(step);
-			break;
-		case 5:
-			notice('-----running step '+step+': DELETE test');
-			testDELETE(step);
-			break;
-		case 6:
-			notice('-----running step '+step+': prepare database - remove all dogs (no real dogs harmed here!!)');
-			cleanupAllDogs(step);
-			break;
-		case 7:
-			notice('-----running step '+step+': make a new dog');
-			makeNewDog(step);
-			break;
-		case 8:
-			notice('-----running step '+step+': update our dog');
-			updateDog(step, arg);
-			break;
-		case 9:
-			notice('-----running step '+step+': refresh our dog');
-			refreshDog(step, arg);
-			break;
-		case 10:
-			notice('-----running step '+step+': remove our dog from database (no real dogs harmed here!!)');
-			removeDogFromDatabase(step, arg);
-			break;
-		case 11:
-			notice('-----running step '+step+': make lots of dogs!');
-			makeSampleData(step, arg);
-			break;
-		case 12:
-			notice('-----running step '+step+': make a dogs collection and show each dog');
-			testDogsCollection(step);
-			break;
-		case 13:
-			notice('-----running step '+step+': get the next page of the dogs collection and show each dog');
-			getNextDogsPage(step, arg);
-			break;
-		case 14:
-			notice('-----running step '+step+': get the previous page of the dogs collection and show each dog');
-			getPreviousDogsPage(step, arg);
-			break;
-		case 15:
-			notice('-----running step '+step+': remove all dogs from the database (no real dogs harmed here!!)');
-			cleanupAllDogs(step);
-			break;
-		case 16:
-			notice('-----running step '+step+': prepare database (remove existing user if present)');
-			prepareDatabaseForNewUser(step);
-			break;
-		case 17:
-			notice('-----running step '+step+': create a new user');
-			createUser(step);
-			break;
-		case 18:
-			notice('-----running step '+step+': update the user');
-			updateUser(step, arg);
-			break;
-		case 19:
-			notice('-----running step '+step+': get the existing user');
-			getExistingUser(step, arg);
-			break;
-		case 20:
-			notice('-----running step '+step+': refresh the user from the database');
-			refreshUser(step, arg);
-			break;
-		case 21:
-			notice('-----running step '+step+': log user in');
-			loginUser(step, arg);
-			break;
-		case 22:
-			notice('-----running step '+step+': change users password');
-			changeUsersPassword(step, arg);
-			break;
-		case 23:
-			notice('-----running step '+step+': log user out');
-			logoutUser(step, arg);
-			break;
-		case 24:
-			notice('-----running step '+step+': relogin user');
-			reloginUser(step, arg);
-			break;
-		case 25:
-			notice('-----running step '+step+': logged in user creates dog');
-			createDog(step, arg);
-			break;
-		case 26:
-			notice('-----running step '+step+': logged in user likes dog');
-			userLikesDog(step, arg, arg2);
-			break;
-		case 27:
-			notice('-----running step '+step+': logged in user removes likes connection to dog');
-			removeUserLikesDog(step, arg, arg2);
-			break;
-		case 28:
-			notice('-----running step '+step+': user removes dog');
-			removeDog(step, arg, arg2);
-			break;
-		case 29:
-			notice('-----running step '+step+': log the user out');
-			logoutUser(step, arg);
-			break;
-		case 30:
-			notice('-----running step '+step+': remove the user from the database');
-			destroyUser(step, arg);
-			break;
-		case 31:
-			notice('-----running step '+step+': try to create existing entity');
-			createExistingEntity(step, arg);
-			break;
-		case 32:
-			notice('-----running step '+step+': try to create new entity with no name');
-			createNewEntityNoName(step, arg);
-			break;
-		default:
-			notice('-----test complete!-----');
-			notice('Success count= ' + successCount);
-			notice('Error count= ' + errorCount);
-			notice('-----thank you for playing!-----');
-			$('#start-button').removeAttr("disabled");
-	}
-}
-
-//logging functions
-function success(message){
-	successCount++;
-	if (logSuccess) {
-		console.log('SUCCESS: ' + message);
-		var html = $('#test-output').html();
-		html += ('SUCCESS: ' + message + '\r\n');
-		$('#test-output').html(html);
-	}
-}
-
-function error(message){
-	errorCount++
-	if (logError) {
-		console.log('ERROR: ' + message);
-		var html = $('#test-output').html();
-		html += ('ERROR: ' + message + '\r\n');
-		$('#test-output').html(html);
-	}
-}
-
-function notice(message){
-	if (logNotice) {
-		console.log('NOTICE: ' + message);
-		var html = $('#test-output').html();
-		html += (message + '\r\n');
-		$('#test-output').html(html);
-	}
-}
-
-//tests
-function clearUser(step) {
-  var options = {
-    method:'DELETE',
-    endpoint:'users/fred'
-  };
-  client.request(options, function (err, data) {
-    //data will contain raw results from API call
-    success('User cleared from DB');
-    runner(step);
-  });
-}
-
-function testGET(step) {
-	var options = {
-		method:'GET',
-		endpoint:'users'
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			error('GET failed');
-		} else {
-			//data will contain raw results from API call
-			success('GET worked');
-			runner(step);
-		}
-	});
-}
-
-function testPOST(step) {
-	var options = {
-		method:'POST',
-		endpoint:'users',
-		body:{ username:'fred', password:'secret' }
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			error('POST failed');
-		} else {
-			//data will contain raw results from API call
-			success('POST worked');
-			runner(step);
-		}
-	});
-}
-
-function testPUT(step) {
-	var options = {
-		method:'PUT',
-		endpoint:'users/fred',
-		body:{ newkey:'newvalue' }
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			error('PUT failed');
-		} else {
-			//data will contain raw results from API call
-			success('PUT worked');
-			runner(step);
-		}
-	});
-}
-
-function testDELETE(step) {
-	var options = {
-		method:'DELETE',
-		endpoint:'users/fred'
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			error('DELETE failed');
-		} else {
-			//data will contain raw results from API call
-			success('DELETE worked');
-			runner(step);
-		}
-	});
-}
-
-function makeNewDog(step) {
-
-	var options = {
-		type:'dogs',
-		name:'Rocky'
-	}
-
-	client.createEntity(options, function (err, dog) {
-		if (err) {
-			error('dog not created');
-		} else {
-			success('dog is created');
-
-			//once the dog is created, you can set single properties:
-			dog.set('breed','Dinosaur');
-
-			//the set function can also take a JSON object:
-			var data = {
-				master:'Fred',
-				state:'hungry'
-			}
-			//set is additive, so previously set properties are not overwritten
-			dog.set(data);
-
-			//finally, call save on the object to save it back to the database
-			dog.save(function(err){
-				if (err){
-					error('dog not saved');
-				} else {
-					success('new dog is saved');
-					runner(step, dog);
-				}
-			});
-		}
-	});
-
-}
-
-function updateDog(step, dog) {
-
-	//change a property in the object
-	dog.set("state", "fed");
-	//and save back to the database
-	dog.save(function(err){
-		if (err){
-			error('dog not saved');
-		} else {
-			success('dog is saved');
-			runner(step, dog);
-		}
-	});
-
-}
-
-function refreshDog(step, dog){
-
-	//call fetch to refresh the data from the server
-	dog.fetch(function(err){
-		if (err){
-			error('dog not refreshed from database');
-		} else {
-			//dog has been refreshed from the database
-			//will only work if the UUID for the entity is in the dog object
-			success('dog entity refreshed from database');
-			runner(step, dog);
-		}
-	});
-
-}
-
-function removeDogFromDatabase(step, dog){
-
-	//the destroy method will delete the entity from the database
-	dog.destroy(function(err){
-		if (err){
-			error('dog not removed from database');
-		} else {
-			success('dog removed from database'); // no real dogs were harmed!
-			dog = null; //no real dogs were harmed!
-			runner(step, 1);
-		}
-	});
-
-}
-
-function makeSampleData(step, i) {
-	notice('making dog '+i);
-
-	var options = {
-		type:'dogs',
-		name:'dog'+i,
-		index:i
-	}
-
-	client.createEntity(options, function (err, dog) {
-		if (err) {
-			error('dog ' + i + ' not created');
-		} else {
-			if (i >= 30) {
-				//data made, ready to go
-				success('all dogs made');
-				runner(step);
-			} else {
-				success('dog ' + i + ' made');
-				//keep making dogs
-				makeSampleData(step, ++i);
-			}
-		}
-	});
-}
-
-function testDogsCollection(step) {
-
-	var options = {
-		type:'dogs',
-		qs:{ql:'order by index'}
-	}
-
-	client.createCollection(options, function (err, dogs) {
-		if (err) {
-			error('could not make collection');
-		} else {
-
-			success('new Collection created');
-
-			//we got the dogs, now display the Entities:
-			while(dogs.hasNextEntity()) {
-				//get a reference to the dog
-				dog = dogs.getNextEntity();
-				var name = dog.get('name');
-				notice('dog is called ' + name);
-			}
-
-			success('looped through dogs');
-
-			//create a new dog and add it to the collection
-			var options = {
-				name:'extra-dog',
-				fur:'shedding'
-			}
-			//just pass the options to the addEntity method
-			//to the collection and it is saved automatically
-			dogs.addEntity(options, function(err, dog, data) {
-				if (err) {
-					error('extra dog not saved or added to collection');
-				} else {
-					success('extra dog saved and added to collection');
-					runner(step, dogs);
-				}
-			});
-		}
-	});
-
-}
-
-function getNextDogsPage(step, dogs) {
-
-	if (dogs.hasNextPage()) {
-		//there is a next page, so get it from the server
-		dogs.getNextPage(function(err){
-			if (err) {
-				error('could not get next page of dogs');
-			} else {
-				success('got next page of dogs');
-				//we got the next page of data, so do something with it:
-				var i = 11;
-				while(dogs.hasNextEntity()) {
-					//get a reference to the dog
-					var dog = dogs.getNextEntity();
-					var index = dog.get('index');
-					if(i !== index) {
-						error('wrong dog loaded: wanted' + i + ', got ' + index);
-					}
-					notice('got dog ' + i);
-					i++
-				}
-				success('looped through dogs')
-				runner(step, dogs);
-			}
-		});
-	} else {
-		getPreviousDogsPage(dogs);
-	}
-
-}
-
-function getPreviousDogsPage(step, dogs) {
-
-	if (dogs.hasPreviousPage()) {
-		//there is a previous page, so get it from the server
-		dogs.getPreviousPage(function(err){
-			if(err) {
-				error('could not get previous page of dogs');
-			} else {
-				success('got next page of dogs');
-				//we got the previous page of data, so do something with it:
-				var i = 1;
-				while(dogs.hasNextEntity()) {
-					//get a reference to the dog
-					var dog = dogs.getNextEntity();
-					var index = dog.get('index');
-					if(i !== index) {
-						error('wrong dog loaded: wanted' + i + ', got ' + index);
-					}
-					notice('got dog ' + i);
-					i++
-				}
-				success('looped through dogs');
-				runner(step);
-			}
-		});
-	} else {
-		getAllDogs();
-	}
-}
-
-function cleanupAllDogs(step){
-
-	var options = {
-		type:'dogs',
-		qs:{limit:50} //limit statement set to 50
-	}
-
-	client.createCollection(options, function (err, dogs) {
-		if (err) {
-			error('could not get all dogs');
-		} else {
-			success('got at most 50 dogs');
-			//we got 50 dogs, now display the Entities:
-			while(dogs.hasNextEntity()) {
-				//get a reference to the dog
-				var dog = dogs.getNextEntity();
-				var name = dog.get('name');
-				notice('dog is called ' + name);
-			}
-			dogs.resetEntityPointer();
-			//do doggy cleanup
-			while(dogs.hasNextEntity()) {
-				//get a reference to the dog
-				var dog = dogs.getNextEntity();
-				var dogname = dog.get('name');
-				notice('removing dog ' + dogname + ' from database');
-				dog.destroy(function(err, data) {
-					if (err) {
-						error('dog not removed');
-					} else {
-						success('dog removed');
-					}
-				});
-			}
-
-			//no need to wait around for dogs to be removed, so go on to next test
-			runner(step);
-		}
-	});
-}
-
-
-function prepareDatabaseForNewUser(step) {
-	var options = {
-		method:'DELETE',
-		endpoint:'users/'+_username
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			notice('database ready - no user to delete');
-		runner(step);
-		} else {
-			//data will contain raw results from API call
-			success('database ready - user deleted worked');
-			runner(step);
-		}
-	});
-}
-
-
-function createUser(step) {
-	client.signup(_username, _password, _email, 'Marty McFly',
-		function (err, marty) {
-			if (err){
-				error('user not created');
-				runner(step, marty);
-			} else {
-				success('user created');
-				runner(step, marty);
-			}
-		}
-	);
-}
-
-function updateUser(step, marty) {
-
-	//add properties cumulatively
-	marty.set('state', 'California');
-	marty.set("girlfriend","Jennifer");
-	marty.save(function(err){
-		if (err){
-			error('user not updated');
-		} else {
-			success('user updated');
-			runner(step, marty);
-		}
-	});
-
-}
-
-function getExistingUser(step, marty) {
-
-	var options = {
-		type:'users',
-		username:_username
-	}
-	client.getEntity(options, function(err, existingUser){
-		if (err){
-			error('existing user not retrieved');
-		} else {
-			success('existing user was retrieved');
-
-			var username = existingUser.get('username');
-			if (username === _username){
-				success('got existing user username');
-			} else {
-				error('could not get existing user username');
-			}
-			runner(step, marty);
-		}
-	});
-
-}
-
-
-function refreshUser(step, marty) {
-
-	marty.fetch(function(err){
-		if (err){
-			error('not refreshed');
-		} else {
-			success('user refreshed');
-			runner(step, marty);
-		}
-	});
-
-}
-
-function loginUser(step, marty) {
-	username = _username;
-	password = _password;
-	client.login(username, password,
-		function (err) {
-			if (err) {
-				error('could not log user in');
-			} else {
-				success('user has been logged in');
-
-				//the login call will return an OAuth token, which is saved
-				//in the client. Any calls made now will use the token.
-				//once a user has logged in, their user object is stored
-				//in the client and you can access it this way:
-				var token = client.token;
-
-				//Then make calls against the API.  For example, you can
-				//get the user entity this way:
-				client.getLoggedInUser(function(err, data, user) {
-					if(err) {
-						error('could not get logged in user');
-					} else {
-						success('got logged in user');
-
-						//you can then get info from the user entity object:
-						var username = user.get('username');
-						notice('logged in user was: ' + username);
-
-						runner(step, user);
-					}
-				});
-
-			}
-		}
-	);
-}
-
-function changeUsersPassword(step, marty) {
-
-	marty.set('oldpassword', _password);
-	marty.set('newpassword', _newpassword);
-	marty.save(function(err){
-		if (err){
-			error('user password not updated');
-		} else {
-			success('user password updated');
-			runner(step, marty);
-		}
-	});
-
-}
-
-function logoutUser(step, marty) {
-
-	//to log the user out, call the logout() method
-	client.logout();
-
-	//verify the logout worked
-	if (client.isLoggedIn()) {
-		error('logout failed');
-	} else {
-		success('user has been logged out');
-	}
-
-	runner(step, marty);
-}
-
-function reloginUser(step, marty) {
-
-	username = _username
-	password = _newpassword;
-	client.login(username, password,
-		function (err) {
-		if (err) {
-			error('could not relog user in');
-		} else {
-			success('user has been re-logged in');
-			runner(step, marty);
-		}
-		}
-	);
-}
-
-
-
-//TODO: currently, this code assumes permissions have been set to support user actions.  need to add code to show how to add new role and permission programatically
-//
-//first create a new permission on the default role:
-//POST "https://api.usergrid.com/yourorgname/yourappname/roles/default/permissions" -d '{"permission":"get,post,put,delete:/dogs/**"}'
-//then after user actions, delete the permission on the default role:
-//DELETE "https://api.usergrid.com/yourorgname/yourappname/roles/default/permissions?permission=get%2Cpost%2Cput%2Cdelete%3A%2Fdogs%2F**"
-
-
-function createDog(step, marty) {
-
-	var options = {
-		type:'dogs',
-		name:'einstein',
-		breed:'mutt'
-	}
-
-	client.createEntity(options, function (err, dog) {
-		if (err) {
-			error('POST new dog by logged in user failed');
-		} else {
-			success('POST new dog by logged in user succeeded');
-			runner(step, marty, dog);
-		}
-	});
-
-}
-
-function userLikesDog(step, marty, dog) {
-
-	marty.connect('likes', dog, function (err, data) {
-		if (err) {
-			error('connection not created');
-			runner(step, marty);
-		} else {
-
-			//call succeeded, so pull the connections back down
-			marty.getConnections('likes', function (err, data) {
-				if (err) {
-						error('could not get connections');
-				} else {
-					//verify that connection exists
-					if (marty.likes.einstein) {
-						success('connection exists');
-					} else {
-						error('connection does not exist');
-					}
-
-					runner(step, marty, dog);
-				}
-			});
-		}
-	});
-
-}
-
-function removeUserLikesDog(step, marty, dog) {
-
-	marty.disconnect('likes', dog, function (err, data) {
-		if (err) {
-			error('connection not deleted');
-			runner(step, marty);
-		} else {
-
-			//call succeeded, so pull the connections back down
-			marty.getConnections('likes', function (err, data) {
-				if (err) {
-					error('error getting connections');
-				} else {
-					//verify that connection exists
-					if (marty.likes.einstein) {
-						error('connection still exists');
-					} else {
-						success('connection deleted');
-					}
-
-					runner(step, marty, dog);
-				}
-			});
-		}
-	});
-
-}
-
-function removeDog(step, marty, dog) {
-
-	//now delete the dog from the database
-	dog.destroy(function(err, data) {
-		if (err) {
-			error('dog not removed');
-		} else {
-			success('dog removed');
-		}
-	});
-	runner(step, marty);
-}
-
-function destroyUser(step, marty) {
-
-	marty.destroy(function(err){
-		if (err){
-			error('user not deleted from database');
-		} else {
-			success('user deleted from database');
-			marty = null; //blow away the local object
-			runner(step);
-		}
-	});
-
-}
-
-function createExistingEntity(step, marty) {
-
-	var options = {
-		type:'dogs',
-		name:'einstein'
-	}
-
-	client.createEntity(options, function (err, dog) {
-		if (err) {
-			error('Create new entity to use for existing entity failed');
-		} else {
-			success('Create new entity to use for existing entity succeeded');
-
-			var uuid = dog.get('uuid');
-			//now create new entity, but use same entity name of einstein.  This means that
-			//the original einstein entity now exists.  Thus, the new einstein entity should
-			//be the same as the original + any data differences from the options var:
-
-			options = {
-				type:'dogs',
-				name:'einstein',
-				breed:'mutt'
-			}
-			client.createEntity(options, function (err, newdog) {
-				if (err) {
-					error('Create new entity to use for existing entity failed');
-				} else {
-					success('Create new entity to use for existing entity succeeded');
-
-					var newuuid = newdog.get('uuid');
-					if (newuuid === uuid) {
-						success('UUIDs of new and old entities match');
-					} else {
-						error('UUIDs of new and old entities do not match');
-					}
-
-					var breed = newdog.get('breed');
-					if (breed === 'mutt') {
-						success('attribute sucesfully set on new entity');
-					} else {
-						error('attribute not sucesfully set on new entity');
-					}
-
-					newdog.destroy(function(err){
-						if (err){
-							error('existing entity not deleted from database');
-						} else {
-							success('existing entity deleted from database');
-							dog = null; //blow away the local object
-							newdog = null; //blow away the local object
-							runner(step);
-						}
-					});
-
-				}
-			});
-		}
-	});
-
-}
-
-function createNewEntityNoName(step, marty) {
-
-	var options = {
-   type:"something",
-   othervalue:"something else"
-	}
-
-	client.createEntity(options, function (err, entity) {
-		if (err) {
-			error('Create new entity with no name failed');
-		} else {
-			success('Create new entity with no name succeeded');
-
-      entity.destroy();
-      runner(step);
-		}
-	});
-
-}
-
-});
\ No newline at end of file