Esempio n. 1
0
        public void TestSingleMIALikeFilter()
        {
            SingleTestMIA mia1 = TestCommonUtils.CreateSingleMIA("Meta1", Cardinality.Inline, true, true);

            IFilter filter = new LikeFilter(mia1.ATTR_STRING, "%", null);

            ICollection <MediaItemAspectMetadata> requiredMIATypes = new List <MediaItemAspectMetadata>();

            requiredMIATypes.Add(mia1.Metadata);
            IList <object>  parts    = new List <object>();
            IList <BindVar> bindVars = new List <BindVar>();

            MockCompiledFilter compiledFilter = new MockCompiledFilter();

            compiledFilter.test(MockCore.Management, filter, null, requiredMIATypes, "test", null, parts, bindVars);

            //Console.WriteLine("Parts [{0}]", string.Join(",", parts));
            //Console.WriteLine("Bind vars [{0}]", string.Join(",", bindVars));

            Assert.AreEqual(new List <object> {
                new QueryAttribute(mia1.ATTR_STRING), " LIKE ", "@V0"
            }, parts, "Parts");
            Assert.AreEqual(new List <BindVar> {
                new BindVar("V0", "%", typeof(string))
            }, bindVars, "Bind vars");
        }
Esempio n. 2
0
        public void TestMediaItemIdFilter()
        {
            Guid itemId1 = new Guid("aaaaaaaa-1111-1111-1111-aaaaaaaaaaaa");
            Guid itemId2 = new Guid("bbbbbbbb-2222-2222-2222-bbbbbbbbbbbb");

            IList <Guid> ids = new List <Guid>();

            ids.Add(itemId1);
            ids.Add(itemId2);
            IFilter filter = new MediaItemIdFilter(ids);

            IList <object>  parts    = new List <object>();
            IList <BindVar> bindVars = new List <BindVar>();

            MockCompiledFilter compiledFilter = new MockCompiledFilter();

            compiledFilter.test(MockCore.Management, filter, null, null, "test", null, parts, bindVars);

            //Console.WriteLine("Parts [{0}]", string.Join(",", parts));
            //Console.WriteLine("Bind vars [{0}]", string.Join(",", bindVars));

            Assert.AreEqual(new List <object> {
                "test", " IN (@V0, @V1)", ""
            }, parts, "Parts");
            Assert.AreEqual(new List <BindVar>
            {
                new BindVar("V0", itemId1, typeof(Guid)),
                new BindVar("V1", itemId2, typeof(Guid))
            }, bindVars, "Bind vars");
        }
Esempio n. 3
0
        public void TestMultipleMIALikeFilter()
        {
            MultipleTestMIA mia1 = TestBackendUtils.CreateMultipleMIA("Meta1", Cardinality.Inline, true, true);

            IFilter filter = new LikeFilter(mia1.ATTR_STRING, "%", null);

            ICollection <MediaItemAspectMetadata> requiredMIATypes = new List <MediaItemAspectMetadata>();

            requiredMIATypes.Add(mia1.Metadata);
            IList <object>  parts    = new List <object>();
            IList <BindVar> bindVars = new List <BindVar>();

            MockCompiledFilter compiledFilter = new MockCompiledFilter();

            compiledFilter.test(MockCore.Management, filter, null, requiredMIATypes, "test", null, parts, bindVars);

            //Console.WriteLine("Parts [{0}]", string.Join(",", parts));
            //Console.WriteLine("Part 7 " + parts[7].GetType());
            //Console.WriteLine("Bind vars [{0}]", string.Join(",", bindVars));

            Assert.AreEqual(new List <object> {
                "test", " IN(",
                "SELECT ", "MEDIA_ITEM_ID", " FROM ", "M_META1", " WHERE ", "ATTR_STRING", " LIKE ", "@V0", ")"
            }, parts, "Parts");
            Assert.AreEqual(new List <BindVar> {
                new BindVar("V0", "%", typeof(string))
            }, bindVars, "Bind vars");
        }
Esempio n. 4
0
        public void TestRelationshipFilter()
        {
            // Use the real RelationshipFilter because CompiledFilter is hard coded to look for it
            MockCore.AddMediaItemAspectStorage(RelationshipAspect.Metadata);

            Guid    movieId   = new Guid("aaaaaaaa-1111-1111-1111-aaaaaaaaaaaa");
            Guid    movieType = new Guid("bbbbbbbb-2222-2222-2222-bbbbbbbbbbbb");
            Guid    actorType = new Guid("cccccccc-3333-3333-3333-cccccccccccc");
            IFilter filter    = new RelationshipFilter(actorType, movieType, movieId);

            ICollection <MediaItemAspectMetadata> requiredMIATypes = new List <MediaItemAspectMetadata>();

            IList <object>          parts      = new List <object>();
            IList <BindVar>         bindVars   = new List <BindVar>();
            ICollection <TableJoin> tableJoins = new List <TableJoin>();

            MockCompiledFilter compiledFilter = new MockCompiledFilter();

            compiledFilter.test(MockCore.Management, filter, null, requiredMIATypes, "test", tableJoins, parts, bindVars);

            //Console.WriteLine("Parts [{0}]", string.Join(",", parts));
            //Console.WriteLine("Bind vars [{0}]", string.Join(",", bindVars));
            //Console.WriteLine("Table joins [{0}]", string.Join(",", tableJoins));

            Assert.AreEqual(new List <object> {
                "test", " IN(",
                "SELECT R1.", "MEDIA_ITEM_ID", " FROM ", "M_RELATIONSHIP", " R1", " WHERE", " R1.", "LINKEDID", "=@V0", " AND", " R1.", "ROLE", "=@V1", " AND", " R1.", "LINKEDROLE", "=@V2",
                " UNION ",
                "SELECT R1.", "LINKEDID", " FROM ", "M_RELATIONSHIP", " R1", " WHERE", " R1.", "MEDIA_ITEM_ID", "=@V0", " AND", " R1.", "LINKEDROLE", "=@V1", " AND", " R1.", "ROLE", "=@V2", ")"
            }, parts, "Parts");

            Assert.AreEqual(new List <BindVar>
            {
                new BindVar("V0", movieId, typeof(Guid)),
                new BindVar("V1", actorType, typeof(Guid)),
                new BindVar("V2", movieType, typeof(Guid))
            }, bindVars, "Bind vars");
            Assert.AreEqual(new List <TableJoin> {
            }, tableJoins, "Tables joins");
        }