From ad7214620f43666aba7a48c4777ee24dbd664b86 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 18 May 2009 17:46:14 +0000 Subject: * Re-enable save oar test by loading asset data plugins from test mock class * Actually spit out the exception caught by the plugin loader - not much point having plugins throw exceptions if we are just going to ignore them --- .../Archiver/Tests/InventoryArchiverTests.cs | 195 ++++++++++----------- 1 file changed, 96 insertions(+), 99 deletions(-) (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs') diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 296d4c1..b979a35 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -66,135 +66,132 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests /// /// Test saving a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet). /// -// [Test] -// public void TestSaveIarV0p1() -// { -// TestHelper.InMethod(); -// //log4net.Config.XmlConfigurator.Configure(); + //[Test] + public void TestSaveIarV0p1() + { + TestHelper.InMethod(); + //log4net.Config.XmlConfigurator.Configure(); -// InventoryArchiverModule archiverModule = new InventoryArchiverModule(); + InventoryArchiverModule archiverModule = new InventoryArchiverModule(); -// Scene scene = SceneSetupHelpers.SetupScene(false); -// SceneSetupHelpers.SetupSceneModules(scene, archiverModule); -// CommunicationsManager cm = scene.CommsManager; + Scene scene = SceneSetupHelpers.SetupScene(false); + SceneSetupHelpers.SetupSceneModules(scene, archiverModule); + CommunicationsManager cm = scene.CommsManager; -// // Create user -// string userFirstName = "Jock"; -// string userLastName = "Stirrup"; -// UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); -// cm.UserAdminService.AddUser(userFirstName, userLastName, string.Empty, string.Empty, 1000, 1000, userId); -// CachedUserInfo userInfo = cm.UserProfileCacheService.GetUserDetails(userId); -// userInfo.FetchInventory(); + // Create user + string userFirstName = "Jock"; + string userLastName = "Stirrup"; + UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); + cm.UserAdminService.AddUser(userFirstName, userLastName, string.Empty, string.Empty, 1000, 1000, userId); + CachedUserInfo userInfo = cm.UserProfileCacheService.GetUserDetails(userId); + userInfo.FetchInventory(); -// // Create asset -// SceneObjectGroup object1; -// SceneObjectPart part1; -// { -// string partName = "My Little Dog Object"; -// UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); -// PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); -// Vector3 groupPosition = new Vector3(10, 20, 30); -// Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); -// Vector3 offsetPosition = new Vector3(5, 10, 15); + // Create asset + SceneObjectGroup object1; + SceneObjectPart part1; + { + string partName = "My Little Dog Object"; + UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); + PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); + Vector3 groupPosition = new Vector3(10, 20, 30); + Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); + Vector3 offsetPosition = new Vector3(5, 10, 15); -// part1 -// = new SceneObjectPart( -// ownerId, shape, groupPosition, rotationOffset, offsetPosition); -// part1.Name = partName; + part1 + = new SceneObjectPart( + ownerId, shape, groupPosition, rotationOffset, offsetPosition); + part1.Name = partName; -// object1 = new SceneObjectGroup(part1); -// scene.AddNewSceneObject(object1, false); -// } + object1 = new SceneObjectGroup(part1); + scene.AddNewSceneObject(object1, false); + } -// UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); -// AssetBase asset1 = new AssetBase(); -// asset1.FullID = asset1Id; -// asset1.Data = Encoding.ASCII.GetBytes(SceneObjectSerializer.ToXml2Format(object1)); -// scene.AssetService.Store(asset1); + UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); + AssetBase asset1 = new AssetBase(); + asset1.FullID = asset1Id; + asset1.Data = Encoding.ASCII.GetBytes(SceneObjectSerializer.ToXml2Format(object1)); + scene.AssetService.Store(asset1); -// // Create item -// UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); -// InventoryItemBase item1 = new InventoryItemBase(); -// item1.Name = "My Little Dog"; -// item1.AssetID = asset1.FullID; -// item1.ID = item1Id; -// item1.Folder = userInfo.RootFolder.FindFolderByPath("Objects").ID; -// scene.AddInventoryItem(userId, item1); + // Create item + UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); + InventoryItemBase item1 = new InventoryItemBase(); + item1.Name = "My Little Dog"; + item1.AssetID = asset1.FullID; + item1.ID = item1Id; + item1.Folder = userInfo.RootFolder.FindFolderByPath("Objects").ID; + scene.AddInventoryItem(userId, item1); -// MemoryStream archiveWriteStream = new MemoryStream(); -// archiverModule.OnInventoryArchiveSaved += SaveCompleted; + MemoryStream archiveWriteStream = new MemoryStream(); + archiverModule.OnInventoryArchiveSaved += SaveCompleted; -// lock (this) -// { -// archiverModule.ArchiveInventory(userFirstName, userLastName, "Objects", archiveWriteStream); -// //AssetServerBase assetServer = (AssetServerBase)scene.CommsManager.AssetCache.AssetServer; -// //while (assetServer.HasWaitingRequests()) -// // assetServer.ProcessNextRequest(); + lock (this) + { + archiverModule.ArchiveInventory(userFirstName, userLastName, "Objects", archiveWriteStream); + //AssetServerBase assetServer = (AssetServerBase)scene.CommsManager.AssetCache.AssetServer; + //while (assetServer.HasWaitingRequests()) + // assetServer.ProcessNextRequest(); -// Monitor.Wait(this, 60000); -// } + Monitor.Wait(this, 60000); + } -// byte[] archive = archiveWriteStream.ToArray(); -// MemoryStream archiveReadStream = new MemoryStream(archive); -// TarArchiveReader tar = new TarArchiveReader(archiveReadStream); + byte[] archive = archiveWriteStream.ToArray(); + MemoryStream archiveReadStream = new MemoryStream(archive); + TarArchiveReader tar = new TarArchiveReader(archiveReadStream); -// InventoryFolderImpl objectsFolder = userInfo.RootFolder.FindFolderByPath("Objects"); + InventoryFolderImpl objectsFolder = userInfo.RootFolder.FindFolderByPath("Objects"); -// //bool gotControlFile = false; -// bool gotObject1File = false; -// //bool gotObject2File = false; -// string expectedObject1FilePath = string.Format( -// "{0}{1}/{2}_{3}.xml", -// ArchiveConstants.INVENTORY_PATH, -// string.Format( -// "Objects{0}{1}", ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR, objectsFolder.ID), -// item1.Name, -// item1Id); + //bool gotControlFile = false; + bool gotObject1File = false; + //bool gotObject2File = false; + string expectedObject1FilePath = string.Format( + "{0}{1}/{2}_{3}.xml", + ArchiveConstants.INVENTORY_PATH, + string.Format( + "Objects{0}{1}", ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR, objectsFolder.ID), + item1.Name, + item1Id); -///* // string expectedObject2FileName = string.Format( // "{0}_{1:000}-{2:000}-{3:000}__{4}.xml", // part2.Name, // Math.Round(part2.GroupPosition.X), Math.Round(part2.GroupPosition.Y), Math.Round(part2.GroupPosition.Z), // part2.UUID); -// */ -// string filePath; -// TarArchiveReader.TarEntryType tarEntryType; + string filePath; + TarArchiveReader.TarEntryType tarEntryType; -// while (tar.ReadEntry(out filePath, out tarEntryType) != null) -// { -// Console.WriteLine("Got {0}", filePath); + while (tar.ReadEntry(out filePath, out tarEntryType) != null) + { + //Console.WriteLine("Got {0}", filePath); -// /* // if (ArchiveConstants.CONTROL_FILE_PATH == filePath) // { // gotControlFile = true; // } -// */ -// if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH) && filePath.EndsWith(".xml")) -// { -// //string fileName = filePath.Remove(0, "Objects/".Length); + + if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH) && filePath.EndsWith(".xml")) + { + string fileName = filePath.Remove(0, "Objects/".Length); -// //if (fileName.StartsWith(part1.Name)) -// //{ -// Assert.That(filePath, Is.EqualTo(expectedObject1FilePath)); -// gotObject1File = true; -// //} -// //else if (fileName.StartsWith(part2.Name)) -// //{ -// // Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); -// // gotObject2File = true; -// //} -// } -// } + if (fileName.StartsWith(part1.Name)) + { + Assert.That(filePath, Is.EqualTo(expectedObject1FilePath)); + gotObject1File = true; + } +// else if (fileName.StartsWith(part2.Name)) +// { +// Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); +// gotObject2File = true; +// } + } + } -// //Assert.That(gotControlFile, Is.True, "No control file in archive"); -// Assert.That(gotObject1File, Is.True, "No item1 file in archive"); -// //Assert.That(gotObject2File, Is.True, "No object2 file in archive"); +// Assert.That(gotControlFile, Is.True, "No control file in archive"); + Assert.That(gotObject1File, Is.True, "No item1 file in archive"); +// Assert.That(gotObject2File, Is.True, "No object2 file in archive"); -// // TODO: Test presence of more files and contents of files. -// } + // TODO: Test presence of more files and contents of files. + } /// /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where -- cgit v1.1