예제 #1
0
                    public void LookForFaces_IsFindingFaces2TypeFromRawText_FoundProperFaces()
                    {
                        SimpleWaveFrontService waveService = new SimpleWaveFrontService(obj);

                        var facesIndicies = waveService.LookForFaces(2);

                        bool CompareResult =
                            (util.Compare(facesIndicies[0], new Face()
                        {
                            VertIndicies = new List <int>()
                            {
                                6, 4, 0
                            },
                        }) == 1)
                            &&
                            (util.Compare(facesIndicies[1], new Face()
                        {
                            VertIndicies = new List <int>()
                            {
                                1, 3, 4
                            },
                        }) == 1);

                        Assert.True(CompareResult);
                    }
        public void SpecialFieldsClassTest()
        {
            SpecialFields obj1 = new SpecialFields();

            obj1.Setup();

            byte[]        bytes = _serializer.Serialize(obj1);
            SpecialFields obj2  = _serializer.Deserialize <SpecialFields>(bytes);

            if (!_compare.Compare(obj1, obj2))
            {
                throw new Exception(_compare.DifferencesString);
            }
        }
        public void PrimitiveFieldsNullableClassTest()
        {
            PrimitiveFieldsNullable obj1 = new PrimitiveFieldsNullable();

            obj1.Setup();
            byte[] bytes = _serializer.Serialize(obj1);
            obj1.ClearStatic();
            PrimitiveFieldsNullable obj2 = _serializer.Deserialize <PrimitiveFieldsNullable>(bytes);

            if (!_compare.Compare(obj1, obj2))
            {
                throw new Exception(_compare.DifferencesString);
            }
        }
예제 #4
0
        static void Main(string[] args)
        {
            CompareObjects compareObjects = new CompareObjects();

            var jane = new Person {
                Name = "Jane", DateCreated = DateTime.Now
            };
            var mary = new Person {
                Name = "Mary", DateCreated = DateTime.Now
            };
            var jack = new Person {
                Name = "Jack", DateCreated = DateTime.Now
            };

            var nameList1 = new List <Person>()
            {
                jane, mary, jack
            };
            var nameList2 = new List <Person>()
            {
                jane, jack, mary
            };

            var class1 = new ListClass <Person>(nameList1);
            var class2 = new ListClass <Person>(nameList2);

            compareObjects.IgnoreCollectionOrder = true;
            compareObjects.Compare(class1, class2);
            Console.WriteLine(compareObjects.Differences.Count);
            Console.WriteLine(compareObjects.DifferencesString);
            Console.ReadLine();
        }
예제 #5
0
        public void Template_InsertTemplate_SucessfullyInserted()
        {
            //Arrange
            Fixture fixture = new Fixture();
            var     temp    = fixture.CreateAnonymous <Template>();

            //Template temp = new Template
            //                    {
            //                        Name = "welcome",
            //                        Body = "Dear [FirstName], I'm glad you could join our family. Best Regards, Chuck Conway",
            //                        Title = "Welcome to Momntz"
            //                    };


            //Act
            Sessions.Artifact.Save(temp);
            Sessions.Artifact.Flush();

            Template temp2 = Sessions.Artifact.QueryOver <Template>()
                             .Where((u) => u.Name == temp.Name)
                             .SingleOrDefault();


            //Assert
            CompareObjects compare = new CompareObjects();
            bool           equal   = compare.Compare(temp, temp2);

            Assert.IsTrue(equal);
        }
예제 #6
0
        public void JsonSerializer_BasicUsage()
        {
            TestData truthData = new TestData
            {
                BoolValue   = true,
                IntValue    = 777777777,
                DoubleValue = 777777.777777,
                StringValue = "My String Data 7777"
            };

            // Serilize and Deserialize
            string   serializedData   = JsonSerializer.Serialize(truthData);
            TestData deserializedData = JsonSerializer.DeserializeObject(serializedData, typeof(TestData)) as TestData;

            // Compare they should be the same
            CompareObjects comparer = new CompareObjects();

            Assert.IsTrue(comparer.Compare(truthData, deserializedData));



            // USING GENERICS! Serilize and Deserialize
            serializedData   = JsonSerializer.Serialize(truthData);
            deserializedData = JsonSerializer.DeserializeObject <TestData>(serializedData);

            // Compare they should be the same
            comparer = new CompareObjects();
            Assert.IsTrue(comparer.Compare(truthData, deserializedData));
        }
예제 #7
0
        public static List <string> GetChangedProperties <T>(this Delta <T> value, T original, List <String> includeList = null) where T : class, new()
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            if (original == null)
            {
                throw new ArgumentNullException("original");
            }

            var changedProperties = value.GetChangedPropertyNames();

            if (!changedProperties.Any())
            {
                return(new List <string>());
            }

            var compareObjects = new CompareObjects {
                MaxDifferences    = 100,
                ElementsToInclude = includeList ?? value.GetChangedPropertyNames().ToList()
            };

            compareObjects.ElementsToInclude.Add(typeof(T).Name);

            bool result = compareObjects.Compare(original, value.GetEntity());

            return(!result?compareObjects.Differences.Select(d => d.PropertyName).Distinct().ToList() : new List <string>());
        }
예제 #8
0
        public void TestGroupSerializationDeserialization()
        {
            var sop1 = SceneUtil.RandomSOP("Root", 1);
            var sop2 = SceneUtil.RandomSOP("Child1", 2);
            var sop3 = SceneUtil.RandomSOP("Child2", 3);

            SceneObjectGroup group = new SceneObjectGroup(sop1);

            group.AddPart(sop2);
            group.AddPart(sop3);

            SceneObjectGroup deserGroup = null;
            string           grpBytes   = null;

            Assert.DoesNotThrow(() =>
            {
                grpBytes = SceneObjectSerializer.ToXml2Format(group, true);
            });

            Assert.NotNull(grpBytes);

            Assert.DoesNotThrow(() =>
            {
                deserGroup = SceneObjectSerializer.FromXml2Format(grpBytes);
            });

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;
            comp.ElementsToIgnore        = PrimCompareIgnoreList;

            Assert.IsTrue(comp.Compare(group, deserGroup), comp.DifferencesString);
        }
예제 #9
0
        public object CreateObject(string typeName, bool isSingleton = false, params object[] parameters)
        {
            var type = Type.GetType(typeName, true);

            if (isSingleton)
            {
                List <KeyValuePair <object[], object> > existingInsts;
                if (_instances.TryGetValue(type, out existingInsts) && existingInsts != null)
                {
                    var compareObjects = new CompareObjects();
                    var instance       = existingInsts.FirstOrDefault(ei => compareObjects.Compare(ei.Key, parameters));

                    if (!instance.Equals(default(KeyValuePair <object[], object>)))
                    {
                        return(instance.Value);
                    }
                }
                else
                {
                    existingInsts = new List <KeyValuePair <object[], object> >();
                    _instances.Add(type, existingInsts);
                }

                var newInst = Activator.CreateInstance(type, parameters);
                existingInsts.Add(new KeyValuePair <object[], object>(parameters, newInst));
                return(newInst);
            }
            return(Activator.CreateInstance(type, parameters));
        }
예제 #10
0
        public void TestPartSerialzationDeserialization()
        {
            SceneObjectPart rootPart = new SceneObjectPart(UUID.Zero, new OpenSim.Framework.PrimitiveBaseShape(), new Vector3(1, 2, 3), Quaternion.Identity, Vector3.Zero, false);

            rootPart.Name = "RootPart";
            SceneObjectPart part = Util.RandomSOP("ChildPart", 2);

            var pgrp1 = new SceneObjectGroup(rootPart);

            pgrp1.AddPart(part);

            part.InventorySerial = 1;
            part.Rezzed          = DateTime.Now;
            part.TextColor       = System.Drawing.Color.FromArgb(1, 2, 3, 4);

            byte[] bytes = serEngine.SceneObjectSerializer.SerializePartToBytes(part, OpenSim.Region.Framework.Scenes.Serialization.SerializationFlags.None);

            SceneObjectPart rootPart2 = new SceneObjectPart(UUID.Zero, new OpenSim.Framework.PrimitiveBaseShape(), new Vector3(1, 2, 3), Quaternion.Identity, Vector3.Zero, false);

            rootPart2.Name = "RootPart2";
            SceneObjectPart deserPart = serEngine.SceneObjectSerializer.DeserializePartFromBytes(bytes);
            var             pgrp2     = new SceneObjectGroup(rootPart2);

            pgrp2.AddPart(deserPart);
            deserPart.Rezzed = part.Rezzed;

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;
            comp.ElementsToIgnore        = PrimCompareIgnoreList;

            Assert.IsTrue(comp.Compare(part, deserPart), comp.DifferencesString);
        }
예제 #11
0
        public void TestBaseSerializeDeserialize()
        {
            AssetBase baseAsset = new AssetBase();

            baseAsset.Data                  = new byte[] { 0xA, 0x9, 0x8, 0x7, 0x6, 0x5, 0xA, 0x9, 0x8, 0x7, 0x6, 0x5 };
            baseAsset.Name                  = "Name";
            baseAsset.Description           = "Description";
            baseAsset.FullID                = UUID.Random();
            baseAsset.Local                 = true;
            baseAsset.Temporary             = true;
            baseAsset.Type                  = 5;
            baseAsset.Metadata.CreationDate = DateTime.Now;

            StratusAsset stAsset2;

            using (MemoryStream ms = new MemoryStream())
            {
                ProtoBuf.Serializer.Serialize <StratusAsset>(ms, StratusAsset.FromAssetBase(baseAsset));

                ms.Position = 0;

                stAsset2 = ProtoBuf.Serializer.Deserialize <StratusAsset>(ms);
            }

            var deserBase = stAsset2.ToAssetBase();

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;
            Assert.IsTrue(comp.Compare(deserBase, baseAsset), comp.DifferencesString);
        }
예제 #12
0
        public void TestBasicCacheRetrieval()
        {
            Cache.DiskWriteBackCache wbc = new Cache.DiskWriteBackCache();

            AssetBase baseAsset = new AssetBase();

            baseAsset.Data                  = new byte[] { 0xA, 0x9, 0x8, 0x7, 0x6, 0x5, 0xA, 0x9, 0x8, 0x7, 0x6, 0x5 };
            baseAsset.Name                  = "Name";
            baseAsset.Description           = "Description";
            baseAsset.FullID                = UUID.Random();
            baseAsset.Local                 = true;
            baseAsset.Temporary             = true;
            baseAsset.Type                  = 5;
            baseAsset.Metadata.CreationDate = DateTime.Now;

            var stAsset = StratusAsset.FromAssetBase(baseAsset);

            wbc.StoreAsset(stAsset);

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;

            var cacheAsset = wbc.GetAsset(baseAsset.FullID.Guid);

            Assert.IsTrue(comp.Compare(cacheAsset, stAsset), comp.DifferencesString);
            CollectionAssert.AreEqual(cacheAsset.Data, stAsset.Data);
        }
예제 #13
0
        internal void SelectTemplate(object value)
        {
            _updating = true;

            try {
                var co = new CompareObjects();


                if (value != null)
                {
                    foreach (var itm in _items.Where(i => i.Object != null))
                    {
                        if (co.Compare(itm.Object, value))
                        {
                            cbTemps.SelectedValue = itm.Object;
                        }
                    }
                }
                else
                {
                    cbTemps.SelectedIndex = 0;
                }
            } finally {
                _updating = false;
            }
        }
예제 #14
0
        public void TestSimpleSerializeDeserialize()
        {
            StratusAsset stAsset1 = new StratusAsset();

            stAsset1.Data        = new byte[] { 0xA, 0x9, 0x8, 0x7, 0x6, 0x5, 0xA, 0x9, 0x8, 0x7, 0x6, 0x5 };
            stAsset1.Name        = "Name";
            stAsset1.Description = "Description";
            stAsset1.Id          = UUID.Random().Guid;
            stAsset1.Local       = true;
            stAsset1.Temporary   = true;
            stAsset1.Type        = 5;
            stAsset1.CreateTime  = DateTime.Now;

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;

            StratusAsset stAsset2;

            using (MemoryStream ms = new MemoryStream())
            {
                ProtoBuf.Serializer.Serialize <StratusAsset>(ms, stAsset1);

                ms.Position = 0;

                stAsset2 = ProtoBuf.Serializer.Deserialize <StratusAsset>(ms);

                Assert.IsTrue(comp.Compare(stAsset1, stAsset2), comp.DifferencesString);
            }
        }
예제 #15
0
        private void AssertModelsEquals(object originalModel, object returnedModel)
        {
            var compareObjects = new CompareObjects {
                MaxDifferences = 10
            };

            Assert.IsTrue(compareObjects.Compare(originalModel, returnedModel), "Source model is not the same as returned model. {0}", compareObjects.DifferencesString);
        }
예제 #16
0
        public string Compare(object exptected, object actual)
        {
            if (_comparer.Compare(exptected, actual))
            {
                return(null);
            }

            return(_comparer.DifferencesString);
        }
예제 #17
0
                    public void LookForTextureVertex_IsFindingTexVertexFromRawText_FoundProperTextVertexs()
                    {
                        SimpleWaveFrontService waveService = new SimpleWaveFrontService(obj);

                        var texVerts = waveService.LookForTextureVertex();

                        bool CompareResult =
                            (util.Compare(texVerts[0], new TextureVertex()
                        {
                            XAxis = 0.5f, YAxis = 0.2f
                        }) == 1) &&
                            (util.Compare(texVerts[1], new TextureVertex()
                        {
                            XAxis = 0.35f, YAxis = 0.4f
                        }) == 1);

                        Assert.True(CompareResult);
                    }
예제 #18
0
                    public void LookForNomals_IsFindingNormalsFromRawText_FoundProperNormals()
                    {
                        SimpleWaveFrontService waveService = new SimpleWaveFrontService(obj);

                        var normals = waveService.LookForNormals();

                        bool CompareResult =
                            (util.Compare(normals[0], new Normal()
                        {
                            XAxis = 0, YAxis = -1, ZAxis = 0
                        }) == 1) &&
                            (util.Compare(normals[1], new Normal()
                        {
                            XAxis = 0, YAxis = 1, ZAxis = 0
                        }) == 1);

                        Assert.True(CompareResult);
                    }
        public static void ShouldBeEqualTo(this ISomeServiceComplexRequest m1, ISomeServiceComplexRequest m2)
        {
            var comparer = new CompareObjects();

            comparer.ElementsToIgnore.Add("IsPooled");

            if (!comparer.Compare(m1, m2))
            {
                throw new Exception("Messages are not equal, Details:" + comparer.DifferencesString);
            }
        }
예제 #20
0
        public void CompareUnmatchedParents()
        {
            var parent1 = new Parent("Parent1", 1, 2);
            var parent2 = new Parent("Parent2", 1, 2);

            var comparer = new CompareObjects();

            bool compare = comparer.Compare(parent1, parent2);

            Assert.IsTrue(compare, comparer.DifferencesString);
        }
예제 #21
0
        public void TestCFTimeoutAndWritePathWithImmediateStaleDeletes()
        {
            if (!_runTests)
            {
                return;
            }

            //delete any leftover files in the writeback cache
            foreach (var file in Directory.EnumerateFiles("cache/cf_writeback"))
            {
                File.Delete(file);
            }

            AssetBase baseAsset = new AssetBase();

            baseAsset.Data                  = new byte[] { 0xA, 0x9, 0x8, 0x7, 0x6, 0x5, 0xA, 0x9, 0x8, 0x7, 0x6, 0x5 };
            baseAsset.Name                  = "Name";
            baseAsset.Description           = "Description";
            baseAsset.FullID                = UUID.Random();
            baseAsset.Local                 = true;
            baseAsset.Temporary             = true;
            baseAsset.Type                  = 5;
            baseAsset.Metadata.CreationDate = DateTime.Now;

            try
            {
                Config.Settings.Instance.UnitTest_ThrowTimeout = true;
                Config.Settings.Instance.UnitTest_DeleteOldCacheFilesImmediately = true;

                _client.StoreAsset(baseAsset);

                System.Threading.Thread.Sleep(5000);

                //confirm the asset is now missing from the writeback cache
                Assert.IsNull(_client.DiskWriteBackCache.GetAsset(baseAsset.FullID.Guid));
            }
            finally
            {
                Config.Settings.Instance.UnitTest_ThrowTimeout = false;
                Config.Settings.Instance.UnitTest_DeleteOldCacheFilesImmediately = false;
            }

            //we should now be able to get the asset from CF since it should've been written back
            //by the write back recovery code
            AssetBase cfAsset = _client.RequestAssetSync(baseAsset.FullID);

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;

            Assert.IsTrue(comp.Compare(baseAsset, cfAsset), comp.DifferencesString);
            CollectionAssert.AreEqual(baseAsset.Data, cfAsset.Data);
        }
예제 #22
0
        public void SerializationDeserializationTest()
        {
            Serializer serializer = new Serializer();

            //Serialize and Deserialize a simple type
            DateTime date = new DateTime(2010, 8, 21, 10, 53, 31, 555);

            byte[]   serializedDate = serializer.Serialize(date);
            DateTime dateCopy       = serializer.Deserialize <DateTime>(serializedDate);

            //Serialize and Deserialize a single object
            Person person = new Person();

            person.Name = "John";
            byte[] serialized = serializer.Serialize(person);

            Person personCopy = serializer.Deserialize <Person>(serialized);

            //Serialize and Deserialize a List
            List <Person> personList = new List <Person>();

            Person person1 = new Person();

            person1.Name = "Sally";
            personList.Add(person1);

            Person person2 = new Person();

            person2.Name = "Susan";
            personList.Add(person2);

            byte[] serializedList = serializer.Serialize(personList);

            List <Person> personListCopy = serializer.Deserialize <List <Person> >(serializedList);

            Assert.IsTrue(_compareObjects.Compare(person, personCopy));
            Assert.IsTrue(_compareObjects.Compare(personList, personListCopy));
            Assert.AreEqual(date, dateCopy);
        }
예제 #23
0
        public void CompareMatchedParents()
        {
            var parent1 = new Parent("Parent1", 1, 2);
            var parent2 = new Parent("Parent1", 1, 2);

            var comparer = new CompareObjects();

            AddIgnoreElements(comparer, "Key");

            bool compare = comparer.Compare(parent1, parent2);

            Assert.IsTrue(compare, comparer.DifferencesString);
        }
예제 #24
0
        public int GenerateConstraintId <TEvent>(IConstraintInfo constraint)
        {
            var eventType = typeof(TEvent);

            if (!eventConstraints.ContainsKey(eventType))
            {
                return(GenerateNewConstraintId <TEvent>(constraint));
            }


            var existing = eventConstraints[eventType].FirstOrDefault(c => comparer.Compare(constraint.GetConstraint(), c.GetConstraint()));

            return(existing != null ? existing.Id : GenerateNewConstraintId <TEvent>(constraint));
        }
예제 #25
0
        static void CompareActualAndExpectedThens(IComponentContext scope, IEnumerable <Tuple <string, object> > thens)
        {
            var unitOfWork     = scope.Resolve <UnitOfWork>();
            var actualEvents   = unitOfWork.GetChanges().Single().Root.GetChanges().ToArray();
            var expectedEvents = thens.Select(item => item.Item2).ToArray();

            var comparer = new CompareObjects {
                MaxDifferences = Int32.MaxValue
            };

            if (!comparer.Compare(actualEvents, expectedEvents))
            {
                NUnit.Framework.Assert.Fail(comparer.DifferencesString);
            }
        }
예제 #26
0
        public void TestCoalescedSerializationDeserialization()
        {
            var sop1 = Util.RandomSOP("Root", 1);
            var sop2 = Util.RandomSOP("Child1", 2);
            var sop3 = Util.RandomSOP("Child2", 3);

            SceneObjectGroup group = new SceneObjectGroup(sop1);

            group.AddPart(sop2);
            group.AddPart(sop3);


            var sop4 = Util.RandomSOP("Root2", 1);
            var sop5 = Util.RandomSOP("Child12", 2);
            var sop6 = Util.RandomSOP("Child22", 3);

            SceneObjectGroup group2 = new SceneObjectGroup(sop4);

            group2.AddPart(sop5);
            group2.AddPart(sop6);

            var gp1perms = group.GetNewItemPermissions(UUID.Random());
            var gp2perms = group2.GetNewItemPermissions(UUID.Random());

            var perms = new Dictionary <UUID, ItemPermissionBlock>();

            perms[group.UUID]  = gp1perms;
            perms[group2.UUID] = gp2perms;

            CoalescedObject cobj = new CoalescedObject(
                new List <SceneObjectGroup> {
                group, group2
            },
                perms
                );

            var colbytes = serEngine.CoalescedObjectSerializer.SerializeObjectToBytes(cobj, SerializationFlags.None);

            var deserColObj = serEngine.CoalescedObjectSerializer.DeserializeObjectFromBytes(colbytes);

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;
            comp.ElementsToIgnore        = PrimCompareIgnoreList;

            Assert.IsTrue(comp.Compare(cobj, deserColObj), comp.DifferencesString);
        }
예제 #27
0
        public void CompareIgnoreChildParents()
        {
            var parent1 = new Parent("Parent1", 1, 2);

            parent1.AddChild("Child1", 1);

            var parent2 = new Parent("Parent1", 1, 2);

            var comparer = new CompareObjects();

            AddIgnoreElements(comparer, "Key", "m_Children");

            bool compare = comparer.Compare(parent1, parent2);

            Assert.IsTrue(compare, comparer.DifferencesString);
        }
        public void CompareWidgetTest()
        {
            DataSet ds = CreateDataSet("Fruits", "Apple", "Orange", "Bananna");
            Widget  w1 = new Widget(true, true, ds);
            Widget  w2 = new Widget(true, true, ds);


            _compare.CompareChildren          = true;
            _compare.CompareFields            = true;
            _compare.ComparePrivateFields     = true;
            _compare.ComparePrivateProperties = true;
            _compare.CompareProperties        = true;
            _compare.CompareReadOnly          = true;

            //_compare.TypesToIgnore.Add(typeof(System.Reflection.Pointer));
            //_compare.TypesToIgnore.Add(typeof(System.IntPtr));

            _compare.AddCustomComparer(typeof(DataSet), CompareDataSet);

            //_compare.TypeSpecificCompareOptions.Add(
            //    typeof(DataSet),
            //    new TypeSpecificCompareOptions(false, false, true, true, true, true));

            //_compare.ElementsToIgnore.Add("CultureInfo");
            //_compare.ElementsToIgnore.Add("Pointer");
            //_compare.ElementsToIgnore.Add("DefaultViewManager");
            //_compare.ElementsToIgnore.Add("dataViewManager");
            //_compare.ElementsToIgnore.Add("DataViewManagerListItemTypeDescriptor");
            //_compare.ElementsToIgnore.Add("Locale");
            //_compare.ElementsToIgnore.Add("Relations");
            //_compare.ElementsToIgnore.Add("Tables");
            //_compare.ElementsToIgnore.Add("EventHandlerList");
            //_compare.ElementsToIgnore.Add("DataTableCollection");
            //_compare.ElementsToIgnore.Add("DataSetRelationCollection");

            bool compare = _compare.Compare(w1, w2);

            Assert.IsTrue(compare, _compare.DifferencesString);

            // Set back to the defaults
            _compare.CompareChildren          = true;
            _compare.CompareFields            = true;
            _compare.ComparePrivateFields     = false;
            _compare.ComparePrivateProperties = false;
            _compare.CompareProperties        = true;
            _compare.CompareReadOnly          = true;
        }
예제 #29
0
        public void TestWriteAndRetrieveLargeAssets()
        {
            if (!_runTests)
            {
                return;
            }

            Random    random    = new Random();
            AssetBase baseAsset = new AssetBase();

            var arr = new byte[1 * 1024 * 1024];

            random.NextBytes(arr);

            baseAsset.Data                  = arr;
            baseAsset.Name                  = "Name1234567 ΏΏ";
            baseAsset.Description           = "Description TEstttt ΏΏΏÿÿ";
            baseAsset.FullID                = UUID.Random();
            baseAsset.Local                 = true;
            baseAsset.Temporary             = true;
            baseAsset.Type                  = 5;
            baseAsset.Metadata.CreationDate = DateTime.Now;

            int start = Environment.TickCount;

            _client.StoreAsset(baseAsset);
            Console.WriteLine("Time to store: {0}", Environment.TickCount - start);

            start = Environment.TickCount;
            AssetBase cfAsset = _client.RequestAssetSync(baseAsset.FullID);

            Console.WriteLine("Time to read: {0}", Environment.TickCount - start);

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;

            Assert.IsTrue(comp.Compare(baseAsset, cfAsset), comp.DifferencesString);
            CollectionAssert.AreEqual(baseAsset.Data, cfAsset.Data);

            start = Environment.TickCount;
            //cleanup
            _client.PurgeAssetSync(baseAsset.FullID);
            Console.WriteLine("Time to purge: {0}", Environment.TickCount - start);
        }
예제 #30
0
        public void TestWriteToCF()
        {
            if (!_runTests)
            {
                return;
            }

            //delete any leftover files in the writeback cache
            foreach (var file in Directory.EnumerateFiles("cache/cf_writeback"))
            {
                File.Delete(file);
            }

            Cache.DiskWriteBackCache wbc = new Cache.DiskWriteBackCache();

            AssetBase baseAsset = new AssetBase();

            baseAsset.Data                  = new byte[] { 0xA, 0x9, 0x8, 0x7, 0x6, 0x5, 0xA, 0x9, 0x8, 0x7, 0x6, 0x5 };
            baseAsset.Name                  = "Name";
            baseAsset.Description           = "Description";
            baseAsset.FullID                = UUID.Random();
            baseAsset.Local                 = true;
            baseAsset.Temporary             = true;
            baseAsset.Type                  = 5;
            baseAsset.Metadata.CreationDate = DateTime.Now;

            var stAsset = StratusAsset.FromAssetBase(baseAsset);

            wbc.StoreAsset(stAsset);

            wbc.DoWriteCycle();

            //the asset should still be in the WB cache
            Assert.IsNotNull(wbc.GetAsset(baseAsset.FullID.Guid));

            //... but we should now be able to get the asset from CF
            AssetBase cfAsset = _client.RequestAssetSync(baseAsset.FullID);

            CompareObjects comp = new CompareObjects();

            comp.CompareStaticFields     = false;
            comp.CompareStaticProperties = false;

            Assert.IsTrue(comp.Compare(baseAsset, cfAsset), comp.DifferencesString);
            CollectionAssert.AreEqual(baseAsset.Data, cfAsset.Data);
        }
        // Case 1628: 1.1.05.05_Call getGenericInstanceInfo to check the Dicom_Info for dicom instance
        public void Run_GenericInstance_GetInfoForDICOM_Case1628()
        {
            int runCount = 0;

            foreach (InputDataSet ids in this.Input.DataSets)
            {
                runCount++;
                Round r = this.NewRound(runCount.ToString(), ids.Description);

                try
                {
                    string instanceUID = string.Empty;
                    for (int i = 0; i < ids.InputParameters.Count; i++)
                    {
                        if (ids.InputParameters.GetParameter(i).Step == "getInstanceInfo")
                        {
                            if (ids.InputParameters.GetParameter(i).Key == "instanceID")
                            {
                                instanceUID = ids.InputParameters.GetParameter(i).Value;
                            }
                        }
                    }

                    string epCode = string.Empty;
                    string epMessage = string.Empty;
                    GenericGetGenericInstanceInfoResponseType epGetGenericInstanceInfo = new GenericGetGenericInstanceInfoResponseType();
                    epGetGenericInstanceInfo.instance = new InstanceType();
                    epGetGenericInstanceInfo.instance.dicomInfo = new DicomInfoType();
                    for (int i = 0; i < ids.ExpectedValues.Count; i++)
                    {
                        switch (ids.ExpectedValues.GetParameter(i).Key)
                        {
                            case "code":
                                epCode = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "message":
                                epMessage = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_modality":
                                epGetGenericInstanceInfo.instance.dicomInfo.modality = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_acquisitionDate":
                                epGetGenericInstanceInfo.instance.dicomInfo.acquisitionDate = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_acquisitionTime":
                                epGetGenericInstanceInfo.instance.dicomInfo.acquisitionTime = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_patientFirstName":
                                epGetGenericInstanceInfo.instance.dicomInfo.patientFirstName = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_patientLastName":
                                epGetGenericInstanceInfo.instance.dicomInfo.patientLastName = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_patientId":
                                epGetGenericInstanceInfo.instance.dicomInfo.patientId = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_patientBirthDate":
                                epGetGenericInstanceInfo.instance.dicomInfo.patientBirthDate = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_patientAge":
                                epGetGenericInstanceInfo.instance.dicomInfo.patientAge = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_studyDate":
                                epGetGenericInstanceInfo.instance.dicomInfo.studyDate = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_kvp":
                                epGetGenericInstanceInfo.instance.dicomInfo.kvp = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_xrayTubeCurrent":
                                epGetGenericInstanceInfo.instance.dicomInfo.xrayTubeCurrent = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_exposureTime":
                                epGetGenericInstanceInfo.instance.dicomInfo.exposureTime = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_sopClassUid":
                                epGetGenericInstanceInfo.instance.dicomInfo.sopClassUid = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_instanceNumber":
                                epGetGenericInstanceInfo.instance.dicomInfo.instanceNumber = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_manufacturerModelName":
                                epGetGenericInstanceInfo.instance.dicomInfo.manufacturerModelName = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_imagerPixelSpacing":
                                epGetGenericInstanceInfo.instance.dicomInfo.imagerPixelSpacing = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_transferSyntax":
                                epGetGenericInstanceInfo.instance.dicomInfo.transferSyntax = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            case "dcm_anatomicRegion":
                                epGetGenericInstanceInfo.instance.dicomInfo.anatomicRegion = ids.ExpectedValues.GetParameter(i).Value;
                                break;
                            default:
                                break;
                        }
                    }

                    GenericIntanceServiceV2 genericInstanceSvc = new GenericIntanceServiceV2();

                    CheckPoint cpGetGenericInstanceInfo = new CheckPoint("getGenericInstanceInfo", "getGenericInstanceInfo");
                    r.CheckPoints.Add(cpGetGenericInstanceInfo);

                    GenericGetGenericInstanceInfoResponseType rtGetGenericInstanceInfo = genericInstanceSvc.getGenericInstanceInfo(instanceUID);
                    if (!genericInstanceSvc.LastReturnXMLValidateResult.isValid)
                    {
                        cpGetGenericInstanceInfo.Result = TestResult.Fail;
                        cpGetGenericInstanceInfo.Outputs.AddParameter("getGenericInstanceInfo", "Invalid XML", "GetGenericInstanceInfo response is not complied with schema. Actually get: " + genericInstanceSvc.LastReturnXML);
                        SaveRound(r);
                        continue;
                    }

                    if (rtGetGenericInstanceInfo.status.code != 0)
                    {
                        cpGetGenericInstanceInfo.Result = TestResult.Fail;
                        cpGetGenericInstanceInfo.Outputs.AddParameter("getGenericInstanceInfo", "Get Fail", "Get Fail.Code:" + rtGetGenericInstanceInfo.status.code.ToString() + " Message:" + rtGetGenericInstanceInfo.status.message);
                        SaveRound(r);
                        continue;
                    }

                    CompareObjects compareObjects = new CompareObjects();
                    if (compareObjects.Compare(epGetGenericInstanceInfo.instance.dicomInfo, rtGetGenericInstanceInfo.instance.dicomInfo))
                    {
                        cpGetGenericInstanceInfo.Result = TestResult.Pass;
                        cpGetGenericInstanceInfo.Outputs.AddParameter("getGenericInstanceInfo", "Check the DICOM Info", "The return value is equal to expected value" + genericInstanceSvc.LastReturnXML);
                    }
                    else
                    {
                        cpGetGenericInstanceInfo.Result = TestResult.Fail;
                        cpGetGenericInstanceInfo.Outputs.AddParameter("getGenericInstanceInfo", "Check the DICOM Info", "Fail. The return values is not equal to expected value." + compareObjects.DifferencesString + ". Actually get: " + genericInstanceSvc.LastReturnXML);
                        SaveRound(r);
                        continue;
                    }

                    SaveRound(r);
                }
                catch (Exception ex)
                {
                    CheckPoint cp = new CheckPoint();
                    r.CheckPoints.Add(cp);
                    cp.Result = TestResult.Fail;
                    cp.Outputs.AddParameter("Exception thrown", "Exception Message", ex.Message);
                    SaveRound(r);
                }
            }

            Output();
        }