From 9aa8a863655a3ec2c7488c90768ccf69f2f78acc Mon Sep 17 00:00:00 2001 From: John Blum Date: Fri, 27 Sep 2019 19:05:05 -0700 Subject: [PATCH] Adds smoke tests for a Spring for Apache Geode project generated (created) with Spring Initializer at https://start.spring.io. Resolves gh-51. --- .../etc/spring-4-apache-geode-initializer.zip | Bin 0 -> 59386 bytes ...pring-geode-smoke-tests-initializer.gradle | 24 +++++ .../example/app/InitializerApplication.java | 90 ++++++++++++++++++ .../app/InitializerApplicationSmokeTests.java | 58 +++++++++++ .../src/test/resources/logback.xml | 22 +++++ 5 files changed, 194 insertions(+) create mode 100644 spring-geode-tests/smoke-tests/spring-initializer/etc/spring-4-apache-geode-initializer.zip create mode 100644 spring-geode-tests/smoke-tests/spring-initializer/spring-geode-smoke-tests-initializer.gradle create mode 100644 spring-geode-tests/smoke-tests/spring-initializer/src/main/java/example/app/InitializerApplication.java create mode 100644 spring-geode-tests/smoke-tests/spring-initializer/src/test/java/example/app/InitializerApplicationSmokeTests.java create mode 100644 spring-geode-tests/smoke-tests/spring-initializer/src/test/resources/logback.xml diff --git a/spring-geode-tests/smoke-tests/spring-initializer/etc/spring-4-apache-geode-initializer.zip b/spring-geode-tests/smoke-tests/spring-initializer/etc/spring-4-apache-geode-initializer.zip new file mode 100644 index 0000000000000000000000000000000000000000..93479159e8fb8ce3adfa81f408f86474079e569a GIT binary patch literal 59386 zcmbrjQ;aA;lr7q}ZQHg^+qP}nwr$(CZS%Bk+uirfoyp6~&CE+~UL}>($F5yf>toki zYs*UkgP;IFKtKRwLG#D~{J#dwzqN&}g|mf$wS}jNBRw#Hyc9UZe*^&iSCst!xEK5X z*z08C>}+9c=0s=aXkct@5)=2wa+m=|WNm_ST3)$ ztu6KUoaZsL7V0SPPT@sQDueZU}*kTV+C~X zOge0t-kcDEvwZnQPRf2GEaS)?V>Kzn;S@7MWV4epiuMqsQ6YY-sveCY4j1alg>U&& zeNScuCXZ2}f7yV}g|8~|@0an8I{lr<*Fukiqz#-NBCxi3B-+K2-p0OqYlj{D{Oaxc z(9{RECpa9W6F2L-y|3jIzBMWN?)Vd&+POAYH4-`($}(DBzsfu8f8b>qVDWPL4~;ND zfPeV?PgtY>A9(#IOm1|B2F^38I(D0EC_eDZ zp&*)tH)%)|NGUfx&h2)O!%(Wu@z|aWeCvfHyI=3_wuE#cGV$?s_V~3Q9yIEoMF-x` z*KhOLP&isO{xA`wY}g0bypnafCT4M&Lei4R6i_KrO)uw@K=N&+A-m@bGU@hvyrTH7 z0`t61d>+%IA7`k=Cz(;S2TCf!43Si;iw4{vYf|ZhlJL+oi$(?y##Y2g90PHR-wlN9 zONrQn4RDgSs)iW_l&=C!+Z8EOe)jCxwp}6t_f3s-rma&pvg7H5CQ)4NA!#PvMny|P z2Kv^f3m~P=2}lZO#FHA%jnCe-qM`Ir)~YoiOE(z$043Hf$3k2Xl}J+!q^4LZXc&pI z!GRNG6a&zQ>!Wzw(S?gHL_|GuXl_a0qTgXmpAHx^LJ_CW?mKc}#-bISgJ`KCNb~i7 zE*QH5p+pQTJL^I9z=2G$Ot92o#!%P*YB)ekr?MDOr|w}zxrnTyta?j{1V{xXMrKR& z93vT&(kYHQmWDI+)S>+~hsv`C&E<#L-PZfWg8|#~u>X?;JLaR^q0aByrl$q97FgVF zr-)ckiDXQKVJTPlo`6cZJF$9q8&O!G^=A~BhC5=>r@%`JWGOLG^@BSKj0`#+JJV!L zEVS9;$SWw|w0<-x1U!)nSX^#%)O>gmGS;ol+b~Eg-(^ZopYlNbS!8Ivr zDeWh#;-)f)MGA5eMX{4erF8FQAI{z474KQJt5gwrnPGy29n}w;2jt$lHN4q)&l3-3 ztiZ--I~ioe0|VqUTI4UTBSF}{iao#XFvt8fj(bj-_wSfp2l$7~MH|=-Y9dJ9c&hVx zE*2324Rw7x3{nq8GRw)p>=W9U4rK1-DeRoZOerQ7Ur11zfbaIHklAJQ?e&o_%&DCp zms4=qO7}}oz%S}0J^uGjB5F^X4ukL#uO`{z z_SJZw@%sE=%TlAE6jP|DXp$TX`kW8P__yD|a_tPo7ZxIigfo*e8$v^^Gm{4p_SJN= z8h2g&-d$3WEcEn8#KLJoQM$LefZxsSAcjyT<+p3tb7M79$$mbXDRxNJ##EO951z~* zN4lOE@Fu$0tyt5*d)0WuGNTRZ^*6m4+V)PsV2<3Kdv#P3?%&@PVXM()SFN7VzaSXk z3dL2Xdux2Be%e{Y2ZyqIoN^&nuG&qX5#gf-f?1QeRAXYagdciYDYq!cJMb{`Vy{>S zHpNy>``^Vh;5q{n{5^hgo0g#bERJYG`Yk@Hz5UrU71 zENo%+_%gOKv2j0O|4|(w0-|8nK>z@Jq5r?CBl3S=9edP&oi@0Tez*NbRQI8d46~0~ zd~Op9+`0vnHUKaQWVpv#Ahi57jg+R~40LyXeY+BEuDmT{0~P7m&5%_q^f-*ky;IasCz>Qq6rm%M8rXz&Y=<7 zYSqUGfbEA?Hqv}za^qtRmR#8aFWcrTyCaIsZZrPTuHlLN)Q<&1;Fa%=+X6o}L2$$!gxa&6wRIidOrUnvlBtxanz$NNK$pmhFo}1jHFRxKB~|0aG<=0x4a7Z zrTzeO#I=XDsxijR+pXqri5E7_6V`rw;=``PZ)3o3MjAB?>fFVqgcrDYydPiZuMMOW z$QSqp^%4ZxU4T%9Z4jEBxq41^;^eYx9LEz{=y^rFI4ZLt@oBrk?o3$JkCjEonahw(H5f2a$d7h-KRgi%{q2skoof6NEfQr>gzWB!Aw9Vc%5a^L%} zrJnONd*@)Lku_?_UUskEVG?ZBw#QOuCx+i2teNF%rq9ERmz5|~U@S^36^R;Z6GO)l zyJIR1z`p%O@_5etJ<`0(7Cv8(rBE}O`Z#l9;0&Hn>>F|nd()l?Mabz!1RtRCm3?+6 zzZ)iD<}2n)x2cC>in=XgO1a%hjM#7+c(5W|>2l*9I7SGoD&di%hZPP<;S`kG*@eJD zO*{1)*M@{YN`6|@Eh^{phYPlR0*52}T;GoOi}P|wo$ZuD@*=ded^vhmpVxoz^kCY}6Tj zT+r8nvt)xXgoRH_vi#V39>OnHQR(q43~k?Vbs3IZk=fK;OAI4yGIs@Q^$f0v$PDDl z&FqV&V3-f?tSD_FP^VTTI4#b-2WYS5=WXEIdR{6|J1<_795pv$8#uh|u?Sy?vx4j+ zFErfYTKi;-9mSI+^R{NZ&Yk2hJ`gx@4)Uyx#9~L|aZlE66vm!M7)N8(%s6nN?Uc$tcNRl>Xby>)6>?+cDbN1=anaQ5*@7u^7l_THW!iQBupKFXE( z6F!cF{y?Z8$w5lWu>B zB0!bp&QXzVVX_2R1ncWNWwR0f=ySzv9C%OI!N~h|oV|1&p0F&q!2Gpi94zIYtNKE< zzQ={b@6@hLN+@KXKtR8`8yFsl(vP{1}(mrWc6_-6VB61SL&jL(H2i#w~}jbsAg zUZRWdm_T-Af8LU4odVX8RPffjc@-Akm(mnGf&XeFR(vKHB5G_JqdINc6xX+PqWi*#984A8uEye}|&DMjI zdqCO2UW8o^ZWv^oZEjLTx{Be8sfX_$1r;)xIV|CuYk}#uFLFQ)f*?i)2P!0)cVPp) zCAO8rq^W^&Lh-N=tG|BQmE3`AY>=QPUm(}-=1~Y5fql~2If;n^;3I_bor8|1!kon+tJq8h%*v2AZ=4j zErE!6a8{Yyc~Zx{4ZdhHo)?JywYeg>_tp}gbVbSoV-pRg`^i%p;6%-Ah@Jl)t<#i| zA>^$Nq*drc)5TEj1kL1;ft?qMV5wCKJ*>Jh316AP0X99VFbw|^z;IREp@gU`*I-iW6KcBlL9NlRo;qDLq} zP`?G}gv1?AC1FX7NQn*zC`KoIF~RMH!r&QMa9!9*=5LXP7#np<=GUV_kFKkYPNrIM z#l%dVtNNP9NUIEN&Me+>lPA8*xa8CreA>)jx%BH&Up{ltA=6M4|DZk?e+sAGk65

8_}o9@&~}^3>YvBw%sN zKMnEJ8qALLjlP-ybHMo}Awvejn>c_w|46DNyHX*0r&hxiwM2aEJsPnjA;OsysRXL& z03%z%s4ovz9#?9-ft4G_p!w7aV&NjiU;e@8itSHo4@lpndSO*?&E2oD3(ubX^-R2_ zNHF(GQmiJdvs7hVYKTex5w0Nkofdn#yqxkG2V>!76gr{^F0^ACwosU`N@w1wvyjA} zNkBwk{h>_>%NC660VrSv3aDXcg{N0LqZVgnJtsXhj?-lGbJAEqY|1O4+16no+=IEJ z@Rssp6v^A)2^aw>+Q1U%fl|8{vpg4V9)jlv4|6(Ngk~O;GeJb1W%;q6Uu#wDxwizo{(m_I|EYZG-5d?NxLqw~E(3_PqWY~<_RtIM(EA4SA?^+W?L-DGw7c+Fz?L<-RaINHgE z845~Dir9w5HF{ZEswrt%+EpofN$ClRl_`43H8EA~YWReC))nR@=0%yw>7}YknmwR{ zy~M9V<*V3$2}1{n|81!tkZ9(6|GWF-zxh97P5XcKI!gn`;7(wB+ubC(Y~x-rv8tZ9k*r^cV5MXk8XB&7^w_LnM5`%ILpWcL!lpI7vTgfKw4cnZh?O z!)g^ZrI(uwv^?Bbzu&*pI(G95z4aKG`@#uV7pJr(DlJE(KM1?=!-_oWw9?VA#~z>eclQ(Q z5|x$l{w-3JIA)Kc=cH>gW;1I{Pt#=eh)7fVPfTTh@`A3;%j5!A3hLw}`X9}RoIVp1xX8-b@HypDvvY|LP>D=pNL=*o z1TL!X9wMU+_C|vZ6UnyWFHv$W^N$T)BAFC=^$sYZeE0~`&MrWtvkosbhnIB>GrUJE zjB7qpFWH@UFQy$sv^;jW)lcc44NauI#F1dgN@ni^nfS%OX&Qw2s{1LE-Cbzo@ec1 zAqpiR-{q9r3?0uB%*S#PYnkT#RVB7e;H9cUGM^TL9Cs#iPzZ+zLEt0zy3H=7PV}Hd zn?*-EnM-X~$Q4r)iLV<~P?G;yUO z!kM!6yta@J!e99&P>(DLYWAB~XviojEVdJGge6C61sz?WUm+hGB6US*7O_D9`lSc3 zU{WjuW(8PL!LjQw)n{skD2C1{`{SUN2==iIaOwO}OLJr!_IPGKg@lgTtHA=Yed=R^ z^sV8CSh(GNUWV*$tZ3Tx9g&YHq^)5zc=~_lsJyOC_|?C_C!$;j)j$~Kk?hm@58>xM z%e>zgZo^sb7^o4htCsAr%q7ego*{Pd&_r5ksQGSp+LUWXZn3-D)A(d?ARe ztbZ){L}__^J}!-sbPqZ<=HY+XczaP;^F%0D--UtV_E_)$a`au0B;;GWjA%OB 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 GZ~q7W^E4>{ literal 0 HcmV?d00001 diff --git a/spring-geode-tests/smoke-tests/spring-initializer/spring-geode-smoke-tests-initializer.gradle b/spring-geode-tests/smoke-tests/spring-initializer/spring-geode-smoke-tests-initializer.gradle new file mode 100644 index 00000000..f9fcf172 --- /dev/null +++ b/spring-geode-tests/smoke-tests/spring-initializer/spring-geode-smoke-tests-initializer.gradle @@ -0,0 +1,24 @@ +apply plugin: 'io.spring.convention.spring-test' + +description = "Smoke Tests to assert that a Spring for Apache Geode project generated from Spring Initializer is a standard, non-Webapp Spring Boot application." + +repositories { + mavenCentral() + maven { url 'https://repo.spring.io/milestone' } + maven { url 'https://repo.spring.io/snapshot' } +} + +dependencies { + + implementation "org.assertj:assertj-core" + + implementation "org.springframework.geode:spring-geode-starter:$version" + + testImplementation('org.springframework.boot:spring-boot-starter-test') { + exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + } +} + +test { + useJUnitPlatform() +} diff --git a/spring-geode-tests/smoke-tests/spring-initializer/src/main/java/example/app/InitializerApplication.java b/spring-geode-tests/smoke-tests/spring-initializer/src/main/java/example/app/InitializerApplication.java new file mode 100644 index 00000000..15384651 --- /dev/null +++ b/spring-geode-tests/smoke-tests/spring-initializer/src/main/java/example/app/InitializerApplication.java @@ -0,0 +1,90 @@ +/* + * Copyright 2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package example.app; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.apache.geode.cache.GemFireCache; +import org.apache.geode.cache.Region; +import org.apache.geode.cache.client.ClientRegionShortcut; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.WebApplicationType; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.gemfire.client.ClientRegionFactoryBean; +import org.springframework.data.gemfire.config.annotation.EnableLogging; +import org.springframework.web.context.WebApplicationContext; + +/** + * {@link SpringBootApplication Spring Boot application} generated from {@literal Spring Initializer} + * at start.spring.io. + * + * Putting data into and getting data out of an Apache Geode cache {@link Region} is the most basic function. + * + * @author John Blum + * @see org.apache.geode.cache.GemFireCache + * @see org.apache.geode.cache.Region + * @see org.springframework.boot.SpringApplication + * @see org.springframework.boot.WebApplicationType + * @see org.springframework.boot.autoconfigure.SpringBootApplication + * @see org.springframework.boot.builder.SpringApplicationBuilder + * @see org.springframework.context.ConfigurableApplicationContext + * @see org.springframework.context.annotation.Bean + * @see org.springframework.context.annotation.Configuration + * @see org.springframework.data.gemfire.client.ClientRegionFactoryBean + * @see org.springframework.data.gemfire.config.annotation.EnableLogging + * @see org.springframework.web.context.WebApplicationContext + * @since 1.2.0 + */ +@SpringBootApplication +@SuppressWarnings("unused") +public class InitializerApplication { + + public static void main(String[] args) { + + SpringApplication springApplication = + new SpringApplicationBuilder(InitializerApplication.class) .build(); + + assertThat(springApplication).isNotNull(); + assertThat(springApplication.getWebApplicationType()).isEqualTo(WebApplicationType.NONE); + + ConfigurableApplicationContext applicationContext = springApplication.run(args); + + assertThat(applicationContext).isNotNull(); + assertThat(applicationContext).isNotInstanceOf(WebApplicationContext.class); + assertThat(springApplication.getWebApplicationType()).isNotEqualTo(WebApplicationType.SERVLET); + } + + @Configuration + @EnableLogging(logLevel = "error") + static class GeodeConfiguration { + + @Bean("Example") + public ClientRegionFactoryBean exampleRegion(GemFireCache gemfireCache) { + + ClientRegionFactoryBean exampleRegion = new ClientRegionFactoryBean<>(); + + exampleRegion.setCache(gemfireCache); + exampleRegion.setShortcut(ClientRegionShortcut.LOCAL); + + return exampleRegion; + } + } +} diff --git a/spring-geode-tests/smoke-tests/spring-initializer/src/test/java/example/app/InitializerApplicationSmokeTests.java b/spring-geode-tests/smoke-tests/spring-initializer/src/test/java/example/app/InitializerApplicationSmokeTests.java new file mode 100644 index 00000000..ba4087bd --- /dev/null +++ b/spring-geode-tests/smoke-tests/spring-initializer/src/test/java/example/app/InitializerApplicationSmokeTests.java @@ -0,0 +1,58 @@ +/* + * Copyright 2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package example.app; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.gemfire.GemfireTemplate; +import org.springframework.test.context.junit4.SpringRunner; + +/** + * Smoke Tests for {@link InitializerApplication}. + * + * @author John Blum + * @see org.junit.Test + * @see org.springframework.boot.test.context.SpringBootTest + * @see org.springframework.data.gemfire.GemfireTemplate + * @see org.springframework.test.context.junit4.SpringRunner + * @see example.app.InitializerApplication + * @since 1.2.0 + */ +@RunWith(SpringRunner.class) +@SpringBootTest +@SuppressWarnings("unused") +public class InitializerApplicationSmokeTests { + + @Autowired + @Qualifier("exampleTemplate") + private GemfireTemplate exampleTemplate; + + @Test + public void loadsContextAndRegionDataAccessOperationsWork() { + + assertThat(this.exampleTemplate).isNotNull(); + assertThat(this.exampleTemplate.getRegion()).isNotNull(); + assertThat(this.exampleTemplate.getRegion().getName()).isEqualTo("Example"); + assertThat(this.exampleTemplate.put(1, "TEST")).isNull(); + assertThat(this.exampleTemplate.get(1)).isEqualTo("TEST"); + } +} diff --git a/spring-geode-tests/smoke-tests/spring-initializer/src/test/resources/logback.xml b/spring-geode-tests/smoke-tests/spring-initializer/src/test/resources/logback.xml new file mode 100644 index 00000000..de99c52b --- /dev/null +++ b/spring-geode-tests/smoke-tests/spring-initializer/src/test/resources/logback.xml @@ -0,0 +1,22 @@ + + + + + + + + %d %5p %40.40c:%4L - %m%n + + + + + + + + + + + + + +