void ProvidersTest::test_EntityProperty() { Atlas::Message::Element value; auto provider = CreateProvider( { "entity" }); provider->value(value, QueryContext { *m_b1 }); assert(value.Ptr() == m_b1); //entity.type provider = CreateProvider( { "entity", "type" }); provider->value(value, QueryContext { *m_b1 }); assert(value.Ptr() == m_barrelType); //entity.id provider = CreateProvider( { "entity", "id" }); provider->value(value, QueryContext { *m_b1 }); assert(value.Int() == 1); //entity.mass provider = CreateProvider( { "entity", "mass" }); provider->value(value, QueryContext { *m_b1 }); assert(value.Int() == 30); //entity.burn_speed provider = CreateProvider( { "entity", "burn_speed" }); provider->value(value, QueryContext { *m_b1 }); assert(value.Float() == 0.3); }
void ProvidersTest::test_OutfitProviders() { Atlas::Message::Element value; //Check if we get the right entity in outfit query auto provider = CreateProvider( { "entity", "outfit", "hands" }); provider->value(value, QueryContext { *m_ch1 }); assert(value.Ptr() == m_glovesEntity); //Check for outfit's property query provider = CreateProvider( { "entity", "outfit", "hands", "color" }); provider->value(value, QueryContext { *m_ch1 }); assert(value.String() == "brown"); //Check if we get the right entity in nested outfit query provider = CreateProvider( { "entity", "outfit", "hands", "outfit", "thumb" }); provider->value(value, QueryContext { *m_ch1 }); assert(value.Ptr() == m_cloth); //Check for nested outfit's property provider = CreateProvider( { "entity", "outfit", "hands", "outfit", "thumb", "color" }); provider->value(value, QueryContext { *m_ch1 }); assert(value.String() == "green"); }
void ContainsRecursiveFunctionProvider::value(Atlas::Message::Element& value, const QueryContext& context) const { Atlas::Message::Element container; m_consumer->value(container, context); if (container.isPtr()) { value = checkContainer((LocatedEntitySet*)container.Ptr()); } else{ value = false; } }