From 501a0bec84d27280787725dc8651b6ab4294e2b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=A6=E5=A2=83=E8=BF=B7=E7=A6=BB?= Date: Tue, 7 Dec 2021 15:24:01 +0800 Subject: [PATCH] add test --- .../macros/ProcessorCreatorMacro.scala | 5 +- .../dreamylost/ProcessorCreatorTest.scala | 84 +++++++++++++++++++ 2 files changed, 86 insertions(+), 3 deletions(-) diff --git a/src/main/scala/io/github/dreamylost/macros/ProcessorCreatorMacro.scala b/src/main/scala/io/github/dreamylost/macros/ProcessorCreatorMacro.scala index 67239e5..4320929 100644 --- a/src/main/scala/io/github/dreamylost/macros/ProcessorCreatorMacro.scala +++ b/src/main/scala/io/github/dreamylost/macros/ProcessorCreatorMacro.scala @@ -22,7 +22,8 @@ package io.github.dreamylost.macros import scala.reflect.macros.blackbox - +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter /** * * @author 梦境迷离 @@ -175,8 +176,6 @@ object ProcessorCreatorMacro { c.info( c.enclosingPosition, s"\n###### Time: ${ - import java.time.ZonedDateTime - import java.time.format.DateTimeFormatter ZonedDateTime.now().format(DateTimeFormatter.ISO_ZONED_DATE_TIME) } " + s"Expanded macro start ######\n" + ret.toString() + "\n###### Expanded macro end ######\n", diff --git a/src/test/scala/io/github/dreamylost/ProcessorCreatorTest.scala b/src/test/scala/io/github/dreamylost/ProcessorCreatorTest.scala index c36c445..3eb9e2c 100644 --- a/src/test/scala/io/github/dreamylost/ProcessorCreatorTest.scala +++ b/src/test/scala/io/github/dreamylost/ProcessorCreatorTest.scala @@ -1,3 +1,24 @@ +/* + * Copyright (c) 2021 jxnu-liguobin && contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + package io.github.dreamylost import com.alipay.sofa.jraft.rpc.{ RpcContext, RpcRequestClosure, RpcRequestProcessor } @@ -90,4 +111,67 @@ class ProcessorCreatorTest extends AnyFlatSpec with Matchers { println(openSession.interest()) } + + // error + "ProcessorCreator4" should "compile error" in { + trait Service + """ + | val openSession = ProcessorCreator[Service, RpcRequestClosure, RpcRequestProcessor, RpcContext, BOpenSessionReq, BOpenSessionResp]( + | (service, rpc, req) => { + | BOpenSessionResp.newBuilder().setSessionHandle(null).build() + | }, + | (service, rpc, exception) => { + | BOpenSessionResp.newBuilder().setStatus(exception.getLocalizedMessage).build() + | } + | ) + | + | println(openSession.defaultResp) + | + | println(openSession.getClass.getClass.getName) + | + | println(openSession.interest()) + |""".stripMargin shouldNot compile + } + + // error + "ProcessorCreator5" should "compile error" in { + trait Service + """ + | val openSession = ProcessorCreator[Service, RpcRequestProcessor, RpcRequestClosure, RpcContext, BOpenSessionReq, BOpenSessionResp]( + | (service, rpc, req) => { + | BOpenSessionResp.newBuilder().setSessionHandle(null).build() + | }, + | (service, rpc, exception) => { + | BOpenSessionResp.newBuilder().setStatus(exception.getLocalizedMessage).build() + | } + | ) + | + | println(openSession.defaultResp) + | + | println(openSession.getClass.getClass.getName) + | + | println(openSession.interest()) + |""".stripMargin shouldNot compile + } + + // error + "ProcessorCreator6" should "compile error" in { + object Service + """ + | val openSession = ProcessorCreator[Service, RpcRequestClosure, RpcRequestProcessor, RpcContext, BOpenSessionReq, BOpenSessionResp]( + | (service, rpc, req) => { + | BOpenSessionResp.newBuilder().setSessionHandle(null).build() + | }, + | (service, rpc, exception) => { + | BOpenSessionResp.newBuilder().setStatus(exception.getLocalizedMessage).build() + | } + | ) + | + | println(openSession.defaultResp) + | + | println(openSession.getClass.getClass.getName) + | + | println(openSession.interest()) + |""".stripMargin shouldNot compile + } } -- GitLab