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"); }
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"); }
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"); }
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"); }