package fr.adrienbrault.idea.symfony2plugin.tests.actions.generator.naming; import fr.adrienbrault.idea.symfony2plugin.action.generator.naming.DefaultServiceNameStrategy; import fr.adrienbrault.idea.symfony2plugin.action.generator.naming.ServiceNameStrategyParameter; import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class DefaultServiceNameStrategyTest extends SymfonyLightCodeInsightFixtureTestCase { public void testGetServiceName() { DefaultServiceNameStrategy defaultNaming = new DefaultServiceNameStrategy(); assertEquals("foo.foo_name.class_name", defaultNaming.getServiceName(getParameter("FooBundle\\FooName\\ClassName"))); assertEquals("foo.form_bar.class_name_form", defaultNaming.getServiceName(getParameter("FooBundle\\Form\\Bar\\ClassNameForm"))); assertEquals("foo.form.bar.class_name_form", defaultNaming.getServiceName(getParameter("Foo\\Form\\Bar\\ClassNameForm"))); assertEquals("foo_form_bar.class_name_form", defaultNaming.getServiceName(getParameter("Foo\\Form\\BarBundle\\ClassNameForm"))); assertEquals("foo.form.bar.class_name_form", defaultNaming.getServiceName(getParameter("Foo\\Form\\Bar\\ClassNameForm"))); assertEquals("foo", defaultNaming.getServiceName(getParameter("\\Foo"))); assertEquals("foo", defaultNaming.getServiceName(getParameter("\\FooBundle"))); assertEquals("foo.foo", defaultNaming.getServiceName(getParameter("\\FooBundle\\Foo"))); assertEquals("foo", defaultNaming.getServiceName(getParameter("\\FooBundle\\"))); } public void testThatOnlyBundleInSubNamespaceShouldBeStripped() { DefaultServiceNameStrategy defaultNaming = new DefaultServiceNameStrategy(); assertEquals("foobar_foo_bar_foo_bar_bundle.foo_bar.foo_bar", defaultNaming.getServiceName(getParameter("Foobar\\FooBar\\FooBar\\Bundle\\FooBar\\FooBar"))); assertEquals("foobar_foo_bar_foo_bar_fo.foo_bar.foo_bar", defaultNaming.getServiceName(getParameter("Foobar\\FooBar\\FooBar\\FoBundle\\FooBar\\FooBar"))); } private ServiceNameStrategyParameter getParameter(String className) { return new ServiceNameStrategyParameter(getProject(), className); } }