You've already forked v8-code-style
mirror of
https://github.com/1C-Company/v8-code-style.git
synced 2025-07-17 05:02:20 +02:00
Проверки, которые проверяли названия общих модулей, не учитывали постфиксы (#29)
This commit is contained in:
committed by
GitHub
parent
70807af57b
commit
5eb8a16501
@ -9,11 +9,13 @@
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
* Aleksandr Kapralov - issue #14
|
||||
*******************************************************************************/
|
||||
package com.e1c.v8codestyle.md.check;
|
||||
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_MANAGED_APPLICATION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_ORDINARY_APPLICATION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__EXTERNAL_CONNECTION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__GLOBAL;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__PRIVILEGED;
|
||||
@ -73,6 +75,7 @@ public final class CommonModuleNameClient
|
||||
.features(MD_OBJECT__NAME,
|
||||
COMMON_MODULE__RETURN_VALUES_REUSE,
|
||||
COMMON_MODULE__CLIENT_MANAGED_APPLICATION,
|
||||
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION,
|
||||
COMMON_MODULE__SERVER,
|
||||
COMMON_MODULE__SERVER_CALL,
|
||||
COMMON_MODULE__EXTERNAL_CONNECTION,
|
||||
|
@ -9,11 +9,13 @@
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
* Aleksandr Kapralov - issue #14
|
||||
*******************************************************************************/
|
||||
package com.e1c.v8codestyle.md.check;
|
||||
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_MANAGED_APPLICATION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_ORDINARY_APPLICATION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__EXTERNAL_CONNECTION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__GLOBAL;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__PRIVILEGED;
|
||||
@ -74,6 +76,7 @@ public final class CommonModuleNameClientServer
|
||||
.features(MD_OBJECT__NAME,
|
||||
COMMON_MODULE__RETURN_VALUES_REUSE,
|
||||
COMMON_MODULE__CLIENT_MANAGED_APPLICATION,
|
||||
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION,
|
||||
COMMON_MODULE__SERVER,
|
||||
COMMON_MODULE__SERVER_CALL,
|
||||
COMMON_MODULE__EXTERNAL_CONNECTION,
|
||||
|
@ -9,17 +9,27 @@
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
* Aleksandr Kapralov - issue #14
|
||||
*******************************************************************************/
|
||||
package com.e1c.v8codestyle.md.check;
|
||||
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_MANAGED_APPLICATION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__CLIENT_ORDINARY_APPLICATION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__EXTERNAL_CONNECTION;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__GLOBAL;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__PRIVILEGED;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__RETURN_VALUES_REUSE;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.COMMON_MODULE__SERVER_CALL;
|
||||
import static com._1c.g5.v8.dt.metadata.mdclass.MdClassPackage.Literals.MD_OBJECT__NAME;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.emf.ecore.EStructuralFeature;
|
||||
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
|
||||
@ -64,7 +74,13 @@ public final class CommonModuleNameGlobal
|
||||
.checkTop()
|
||||
.features(MD_OBJECT__NAME,
|
||||
COMMON_MODULE__RETURN_VALUES_REUSE,
|
||||
COMMON_MODULE__GLOBAL);
|
||||
COMMON_MODULE__CLIENT_MANAGED_APPLICATION,
|
||||
COMMON_MODULE__CLIENT_ORDINARY_APPLICATION,
|
||||
COMMON_MODULE__SERVER,
|
||||
COMMON_MODULE__SERVER_CALL,
|
||||
COMMON_MODULE__EXTERNAL_CONNECTION,
|
||||
COMMON_MODULE__GLOBAL,
|
||||
COMMON_MODULE__PRIVILEGED);
|
||||
//@formatter:on
|
||||
}
|
||||
|
||||
@ -73,12 +89,32 @@ public final class CommonModuleNameGlobal
|
||||
IProgressMonitor monitor)
|
||||
{
|
||||
CommonModule commonModule = (CommonModule)object;
|
||||
if (commonModule.isGlobal() && commonModule.getReturnValuesReuse() == ReturnValuesReuse.DONT_USE)
|
||||
if (!commonModule.isGlobal() || commonModule.getReturnValuesReuse() != ReturnValuesReuse.DONT_USE)
|
||||
{
|
||||
String message = MessageFormat.format(Messages.CommonModuleNameGlobal_message,
|
||||
parameters.getString(MdObjectNameWithoutSuffix.NAME_SUFFIX_PARAMETER_NAME));
|
||||
resultAceptor.addIssue(message, MD_OBJECT__NAME);
|
||||
return;
|
||||
}
|
||||
|
||||
Map<EStructuralFeature, Boolean> valuesServer = new HashMap<>();
|
||||
for (EStructuralFeature feature : CommonModuleType.TYPE_SERVER_GLOBAL.keySet())
|
||||
{
|
||||
valuesServer.put(feature, (Boolean)commonModule.eGet(feature));
|
||||
}
|
||||
|
||||
Map<EStructuralFeature, Boolean> valuesClient = new HashMap<>();
|
||||
for (EStructuralFeature feature : CommonModuleType.TYPE_CLIENT_GLOBAL.keySet())
|
||||
{
|
||||
valuesClient.put(feature, (Boolean)commonModule.eGet(feature));
|
||||
}
|
||||
|
||||
if (!valuesServer.equals(CommonModuleType.TYPE_SERVER_GLOBAL)
|
||||
&& !valuesClient.equals(CommonModuleType.TYPE_CLIENT_GLOBAL))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
String message = MessageFormat.format(Messages.CommonModuleNameGlobal_message,
|
||||
parameters.getString(MdObjectNameWithoutSuffix.NAME_SUFFIX_PARAMETER_NAME));
|
||||
resultAceptor.addIssue(message, MD_OBJECT__NAME);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
* Aleksandr Kapralov - issue #14
|
||||
*******************************************************************************/
|
||||
package com.e1c.v8codestyle.md.check;
|
||||
|
||||
@ -86,7 +87,6 @@ public class MdObjectNameWithoutSuffix
|
||||
public ITopObjectFilter contributeTopObjectFilter()
|
||||
{
|
||||
return (IBmObject topObject, ICheckParameters parameters) -> {
|
||||
|
||||
if (!(topObject instanceof MdObject))
|
||||
{
|
||||
return false;
|
||||
@ -105,13 +105,9 @@ public class MdObjectNameWithoutSuffix
|
||||
return false;
|
||||
}
|
||||
|
||||
List<String> nameSuffixs = List.of(nameSuffix.replace(" ", "").split(",")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
List<String> nameSuffixes = List.of(nameSuffix.replace(" ", "").split(",")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
|
||||
if (nameSuffixs.stream().noneMatch(name::endsWith))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return nameSuffixes.stream().noneMatch(s -> name.indexOf(s, 1) != -1);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,16 @@
|
||||
/**
|
||||
/*******************************************************************************
|
||||
* Copyright (C) 2021, 1C-Soft LLC and others.
|
||||
*
|
||||
*/
|
||||
* This program and the accompanying materials are made
|
||||
* available under the terms of the Eclipse Public License 2.0
|
||||
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
* Aleksandr Kapralov - issue #14
|
||||
*******************************************************************************/
|
||||
package com.e1c.v8codestyle.md.itests;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@ -19,6 +29,7 @@ import com._1c.g5.v8.bm.integration.AbstractBmTask;
|
||||
import com._1c.g5.v8.bm.integration.IBmModel;
|
||||
import com._1c.g5.v8.dt.core.platform.IDtProject;
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
|
||||
import com._1c.g5.v8.dt.validation.marker.Marker;
|
||||
import com.e1c.g5.v8.dt.testing.check.CheckTestBase;
|
||||
import com.e1c.v8codestyle.md.check.CommonModuleNameClientServer;
|
||||
@ -38,16 +49,18 @@ public class CommonModuleNameClientServerTest
|
||||
|
||||
private static final String PROJECT_NAME = "CommonModuleName";
|
||||
|
||||
private static final String MODULE_DEFAULT_FQN = "CommonModule.CommonModuleName";
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientServer() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleName";
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_SERVER,
|
||||
ReturnValuesReuse.DONT_USE, null);
|
||||
|
||||
updateCommonModule(dtProject, fqn, CommonModuleType.TYPE_CLIENT_SERVER, null);
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
@ -58,18 +71,64 @@ public class CommonModuleNameClientServerTest
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleName";
|
||||
String fqn = "CommonModule.CommonModuleClientServer";
|
||||
|
||||
updateCommonModule(dtProject, fqn, CommonModuleType.TYPE_CLIENT_SERVER, "CommonModuleClientServer");
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_SERVER,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
fqn = "CommonModule.CommonModuleClientServer";
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientServerWithPostfixCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleClientServerPredefined";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_SERVER,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientServerWithPrefixIncorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.ClientServerCommonModule";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_SERVER,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientServerReturnValueReuseCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_SERVER,
|
||||
ReturnValuesReuse.DURING_SESSION, null);
|
||||
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
private void updateCommonModule(IDtProject dtProject, String fqn, Map<EStructuralFeature, Boolean> types,
|
||||
String newName)
|
||||
ReturnValuesReuse returnValueReuse, String newFqn)
|
||||
{
|
||||
IBmModel model = bmModelManager.getModel(dtProject);
|
||||
model.execute(new AbstractBmTask<Void>("change type")
|
||||
@ -78,16 +137,31 @@ public class CommonModuleNameClientServerTest
|
||||
public Void execute(IBmTransaction transaction, IProgressMonitor monitor)
|
||||
{
|
||||
IBmObject object = transaction.getTopObjectByFqn(fqn);
|
||||
|
||||
for (Entry<EStructuralFeature, Boolean> entry : types.entrySet())
|
||||
{
|
||||
object.eSet(entry.getKey(), entry.getValue());
|
||||
}
|
||||
if (newName != null && object instanceof CommonModule)
|
||||
|
||||
if (!(object instanceof CommonModule))
|
||||
{
|
||||
CommonModule module = (CommonModule)object;
|
||||
module.setName(newName);
|
||||
transaction.updateTopObjectFqn(object, module.eClass().getName() + "." + newName);
|
||||
return null;
|
||||
}
|
||||
|
||||
CommonModule module = (CommonModule)object;
|
||||
|
||||
module.setReturnValuesReuse(returnValueReuse);
|
||||
|
||||
if (newFqn != null)
|
||||
{
|
||||
String[] fqnArray = newFqn.split("[.]");
|
||||
if (fqnArray.length == 2)
|
||||
{
|
||||
module.setName(fqnArray[1]);
|
||||
transaction.updateTopObjectFqn(object, newFqn);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
@ -1,6 +1,16 @@
|
||||
/**
|
||||
/*******************************************************************************
|
||||
* Copyright (C) 2021, 1C-Soft LLC and others.
|
||||
*
|
||||
*/
|
||||
* This program and the accompanying materials are made
|
||||
* available under the terms of the Eclipse Public License 2.0
|
||||
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
* Aleksandr Kapralov - issue #14
|
||||
*******************************************************************************/
|
||||
package com.e1c.v8codestyle.md.itests;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@ -19,6 +29,7 @@ import com._1c.g5.v8.bm.integration.AbstractBmTask;
|
||||
import com._1c.g5.v8.bm.integration.IBmModel;
|
||||
import com._1c.g5.v8.dt.core.platform.IDtProject;
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
|
||||
import com._1c.g5.v8.dt.validation.marker.Marker;
|
||||
import com.e1c.g5.v8.dt.testing.check.CheckTestBase;
|
||||
import com.e1c.v8codestyle.md.check.CommonModuleNameClient;
|
||||
@ -38,16 +49,18 @@ public class CommonModuleNameClientTest
|
||||
|
||||
private static final String PROJECT_NAME = "CommonModuleName";
|
||||
|
||||
private static final String MODULE_DEFAULT_FQN = "CommonModule.CommonModuleName";
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClient() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleName";
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT, ReturnValuesReuse.DONT_USE,
|
||||
null);
|
||||
|
||||
updateCommonModule(dtProject, fqn, CommonModuleType.TYPE_CLIENT, null);
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
@ -58,18 +71,64 @@ public class CommonModuleNameClientTest
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleName";
|
||||
String fqn = "CommonModule.CommonModuleClient";
|
||||
|
||||
updateCommonModule(dtProject, fqn, CommonModuleType.TYPE_CLIENT, "CommonModuleClient");
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT, ReturnValuesReuse.DONT_USE,
|
||||
fqn);
|
||||
|
||||
fqn = "CommonModule.CommonModuleClient";
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientWithPostfixCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleClientPredefined";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT, ReturnValuesReuse.DONT_USE,
|
||||
fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientWithPrefixIncorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.ClientCommonModule";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT, ReturnValuesReuse.DONT_USE,
|
||||
fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientReturnValueReuseCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT,
|
||||
ReturnValuesReuse.DURING_SESSION, null);
|
||||
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
private void updateCommonModule(IDtProject dtProject, String fqn, Map<EStructuralFeature, Boolean> types,
|
||||
String newName)
|
||||
ReturnValuesReuse returnValueReuse, String newFqn)
|
||||
{
|
||||
IBmModel model = bmModelManager.getModel(dtProject);
|
||||
model.execute(new AbstractBmTask<Void>("change type")
|
||||
@ -78,16 +137,31 @@ public class CommonModuleNameClientTest
|
||||
public Void execute(IBmTransaction transaction, IProgressMonitor monitor)
|
||||
{
|
||||
IBmObject object = transaction.getTopObjectByFqn(fqn);
|
||||
|
||||
for (Entry<EStructuralFeature, Boolean> entry : types.entrySet())
|
||||
{
|
||||
object.eSet(entry.getKey(), entry.getValue());
|
||||
}
|
||||
if (newName != null && object instanceof CommonModule)
|
||||
|
||||
if (!(object instanceof CommonModule))
|
||||
{
|
||||
CommonModule module = (CommonModule)object;
|
||||
module.setName(newName);
|
||||
transaction.updateTopObjectFqn(object, module.eClass().getName() + "." + newName);
|
||||
return null;
|
||||
}
|
||||
|
||||
CommonModule module = (CommonModule)object;
|
||||
|
||||
module.setReturnValuesReuse(returnValueReuse);
|
||||
|
||||
if (newFqn != null)
|
||||
{
|
||||
String[] fqnArray = newFqn.split("[.]");
|
||||
if (fqnArray.length == 2)
|
||||
{
|
||||
module.setName(fqnArray[1]);
|
||||
transaction.updateTopObjectFqn(object, newFqn);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
@ -1,6 +1,16 @@
|
||||
/**
|
||||
/*******************************************************************************
|
||||
* Copyright (C) 2021, 1C-Soft LLC and others.
|
||||
*
|
||||
*/
|
||||
* This program and the accompanying materials are made
|
||||
* available under the terms of the Eclipse Public License 2.0
|
||||
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*
|
||||
* Contributors:
|
||||
* 1C-Soft LLC - initial API and implementation
|
||||
* Aleksandr Kapralov - issue #14
|
||||
*******************************************************************************/
|
||||
package com.e1c.v8codestyle.md.itests;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@ -19,6 +29,7 @@ import com._1c.g5.v8.bm.integration.AbstractBmTask;
|
||||
import com._1c.g5.v8.bm.integration.IBmModel;
|
||||
import com._1c.g5.v8.dt.core.platform.IDtProject;
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.CommonModule;
|
||||
import com._1c.g5.v8.dt.metadata.mdclass.ReturnValuesReuse;
|
||||
import com._1c.g5.v8.dt.validation.marker.Marker;
|
||||
import com.e1c.g5.v8.dt.testing.check.CheckTestBase;
|
||||
import com.e1c.v8codestyle.md.check.CommonModuleNameGlobal;
|
||||
@ -34,20 +45,22 @@ public class CommonModuleNameGlobalTest
|
||||
extends CheckTestBase
|
||||
{
|
||||
|
||||
private static final String CHECK_ID = "common-module-name-global"; //$NON-NLS-1$
|
||||
private static final String CHECK_ID = "common-module-name-global";
|
||||
|
||||
private static final String PROJECT_NAME = "CommonModuleName";
|
||||
|
||||
private static final String MODULE_DEFAULT_FQN = "CommonModule.CommonModuleName";
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientGlobal() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleName";
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, null);
|
||||
|
||||
updateCommonModule(dtProject, fqn, CommonModuleType.TYPE_CLIENT_GLOBAL, null);
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
@ -58,18 +71,140 @@ public class CommonModuleNameGlobalTest
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleName";
|
||||
String fqn = "CommonModule.CommonModuleClientGlobal";
|
||||
|
||||
updateCommonModule(dtProject, fqn, CommonModuleType.TYPE_CLIENT_GLOBAL, "CommonModuleClientGlobal");
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
fqn = "CommonModule.CommonModuleClientGlobal";
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientGlobalWithPostfixCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleClientGlobalPredefined";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientGlobalWithPrefixIncorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.GlobalCommonModule";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameClientGlobalReturnValueReuseCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_CLIENT_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, null);
|
||||
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameServerGlobal() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_SERVER_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, null);
|
||||
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameServerGlobalCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleServerGlobal";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_SERVER_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameServerGlobalWithPostfixCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.CommonModuleServerGlobalPredefined";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_SERVER_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameServerGlobalWithPrefixIncorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
String fqn = "CommonModule.GlobalCommonModule";
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_SERVER_GLOBAL,
|
||||
ReturnValuesReuse.DONT_USE, fqn);
|
||||
|
||||
long id = getTopObjectIdByFqn(fqn, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNotNull(marker);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCommonModuleNameServerGlobalReturnValueReuseCorrect() throws Exception
|
||||
{
|
||||
IDtProject dtProject = openProjectAndWaitForValidationFinish(PROJECT_NAME);
|
||||
assertNotNull(dtProject);
|
||||
|
||||
updateCommonModule(dtProject, MODULE_DEFAULT_FQN, CommonModuleType.TYPE_SERVER_GLOBAL,
|
||||
ReturnValuesReuse.DURING_SESSION, null);
|
||||
|
||||
long id = getTopObjectIdByFqn(MODULE_DEFAULT_FQN, dtProject);
|
||||
Marker marker = getFirstMarker(CHECK_ID, id, dtProject);
|
||||
assertNull(marker);
|
||||
}
|
||||
|
||||
private void updateCommonModule(IDtProject dtProject, String fqn, Map<EStructuralFeature, Boolean> types,
|
||||
String newName)
|
||||
ReturnValuesReuse returnValueReuse, String newFqn)
|
||||
{
|
||||
IBmModel model = bmModelManager.getModel(dtProject);
|
||||
model.execute(new AbstractBmTask<Void>("change type")
|
||||
@ -78,16 +213,31 @@ public class CommonModuleNameGlobalTest
|
||||
public Void execute(IBmTransaction transaction, IProgressMonitor monitor)
|
||||
{
|
||||
IBmObject object = transaction.getTopObjectByFqn(fqn);
|
||||
|
||||
for (Entry<EStructuralFeature, Boolean> entry : types.entrySet())
|
||||
{
|
||||
object.eSet(entry.getKey(), entry.getValue());
|
||||
}
|
||||
if (newName != null && object instanceof CommonModule)
|
||||
|
||||
if (!(object instanceof CommonModule))
|
||||
{
|
||||
CommonModule module = (CommonModule)object;
|
||||
module.setName(newName);
|
||||
transaction.updateTopObjectFqn(object, module.eClass().getName() + "." + newName);
|
||||
return null;
|
||||
}
|
||||
|
||||
CommonModule module = (CommonModule)object;
|
||||
|
||||
module.setReturnValuesReuse(returnValueReuse);
|
||||
|
||||
if (newFqn != null)
|
||||
{
|
||||
String[] fqnArray = newFqn.split("[.]");
|
||||
if (fqnArray.length == 2)
|
||||
{
|
||||
module.setName(fqnArray[1]);
|
||||
transaction.updateTopObjectFqn(object, newFqn);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user