All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.coderate.accurest.builder.MethodBuilder.groovy Maven / Gradle / Ivy

package io.coderate.accurest.builder

import io.coderate.accurest.config.TestFramework
import io.coderate.accurest.util.NamesUtil
import io.coderate.accurest.util.StubMappingConverter

/**
 * @author Jakub Kubrynski
 */
class MethodBuilder {

	private final String methodName
	private final Map stubContent
	private final TestFramework lang

	private MethodBuilder(String methodName, Map stubContent, TestFramework lang) {
		this.stubContent = stubContent
		this.methodName = methodName
		this.lang = lang
	}

	static MethodBuilder createTestMethod(File stubsFile, TestFramework lang) {
		Map stubContent = StubMappingConverter.toStubMappingOnServerSide(stubsFile)
		String methodName = NamesUtil.camelCase(NamesUtil.toLastDot(NamesUtil.afterLast(stubsFile.path, File.separator)))
		return new MethodBuilder(methodName, stubContent, lang)
	}

	void appendTo(BlockBuilder blockBuilder) {
		String modifier
		if (lang == TestFramework.JUNIT) {
			blockBuilder.addLine('@Test')
			modifier = "public void "
		} else {
			modifier = "def "
		}
		blockBuilder.addLine(modifier + "$methodName() {")
		new SpockMethodBodyBuilder(stubContent).appendTo(blockBuilder)
		blockBuilder.addLine('}')
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy