From aedc1d63c6b7064c93ad68da8982231bca7f9ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 15 Oct 2017 15:49:35 +0300 Subject: [PATCH] Added first unit test for localization. --- .../Getting-Started-AspNetCore-Application.md | 2 +- src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll | Bin 15872 -> 15360 bytes .../AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 4 +-- .../Mvc/AbpAspNetCoreMvcTestModule.cs | 3 ++- .../AspNetCore/Mvc/AspNetCoreMvcTestBase.cs | 2 -- .../Mvc/Localization/MvcLocalization_Tests.cs | 25 ++++++++++++++++++ 6 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs diff --git a/docs/Getting-Started-AspNetCore-Application.md b/docs/Getting-Started-AspNetCore-Application.md index 32c3de4eab..46b1c21443 100644 --- a/docs/Getting-Started-AspNetCore-Application.md +++ b/docs/Getting-Started-AspNetCore-Application.md @@ -125,7 +125,7 @@ namespace BasicAspNetCoreApplication.Controllers If you run the application, you will see a "Hello World!" message on the page. -Devided ``HomeController`` from ``AbpController`` instead of standard ``Controller`` class. This is not required, but ``AbpController`` class has useful base properties and methods to make your development easier. +Derived ``HomeController`` from ``AbpController`` instead of standard ``Controller`` class. This is not required, but ``AbpController`` class has useful base properties and methods to make your development easier. ### Using Autofac as Dependency Injection Framework diff --git a/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll b/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll index 9b260304f6fb90dcd88df8d7d4d0f83597b85d3b..629eb6cda8fed9f2bdf114740cfae9c6a698eb2a 100644 GIT binary patch delta 4060 zcmY*c4RBP|6+ZXAx9@LvUv}TJ`Q2VQht}oqqRjQtD3L_s;pw z&%O8DbMJ048!~Gjx^H^%UE{qp`5B|>F)ynnItzrBCI8jYH+Z%EWCzhgK`bL$tMrwI zd>JAi^ix+6HM*@0GuqpSEnYxym?Ov}o&&D=blz5huR2`)5FA>S(b0Ef1WGjU&vbt3T zld2bLgZri$i=7RT5?k}OAR#NyecOZb#v6raKzKH}wxNfn);3cKHvQ~@ZC=Xqa6=|X^uN#)TM9Lv&TiFfHuq0=z57e)T3q&-GHsp=!9p! zp;1y3SSxX%WZqPB;NK_l2cF}aMnjT6B=Ilme8Zxf)ve5?Tg^L}L$6ae{7))Fx<+{( zG1eT<(X^>i7gc#Jdd9z%X>>0M!=0+YC;Y;7w<6?0$&b(#@VVU({Lef`&0MNgA{d}m z5d&=Wcyb&{DW04{T5J>>4t>wwWE9d7rPzqlP8!i1YSy>g4n1rh!?^7N|h| zRzb<7Li3dF&}p@X<LN8`qIB7Mk8?O1OJ{HrZ+LR!z(H(}t9X%BjRxmRS!XhXV1CD@1x+GuZq z=QH}Rv;?Kitqk}c%I?r{qeiwtNFqa@Fm%;j=2yN}DGP0}GOBIHMXN|#gFULf0L_q^ z1MO8@&|ayH`$x48(CuMT(D=vDYb#)hky09Ci^ZP!*+2> zDB{XED*c80T^|{ho($dzGp9p5fbWWxdLW?EtGI+1y)MI!`*a+4lLkzNrHW+~04=Hl z2B=PAlf+huNnjWURalouTrROo;%bTOB&N6FRY?6njYcFMrXrlF!}PooqZ5)b*??I= zUBCcs1J+Ql)R)pU@VCheYLlf*zy3VSknejj9dCcTr*a_eX|GBJ`KjLp=t*k-qU^B>T-^k9Q zA-0}1vG1!I)$v)tAf|<@iCts$vV(M7d4RR@wZ=oNkH+jrSrZ>HpJ3<7sMXT5kG|%= zX6smbz_?W~NiOVErvW)s9J?H)|SX}U)-H#@}*S{P1b4AF@bb$xle+HN9<+xAg zQKfsGQ^m^Ndz}SrlY7LeWXs)PD8$Z|_*;pO2uy#0Gn)P22-1F&XpD=4M07uXjfx*- zLY|ACR6FIVC9)x30-N9$LDuEzK1d%f4_02q8pzEn_SYCDme1#E4PY=>%(poy;$oliBZy zaTduB1{ilTTkto<3-`d3*WSSY?AJ<%D0yJd>@@?Ji;NTgz7kz`G7rOJ8x$w=c-Xm^ zIn$g>KMw~pyP3xmBPTO~FEDrs0nt&xm=+U3ZZJMAecCRL$mHLeggHI#WWMEwu!~e) zMDVcFYa&jJC<)9`5+35VosI3sNWshz3zjfkje(Gcf;9WP0X64%e4pud% zMPa#Sd$eLK$iQS}W%S8Pam^5-Xe~u^ge<4&1vix&e9RPavZG9tG`m}q-G-h7g*M5) z`ZN++Usl^|-7JcqttO5xlY1d&V97*M6kC8o+O}M>*g!do+)7_eWwvc+_cfbzzY-_g zjElU7vB?G`xVmp9_76W=-NS~xHT6c=-ZguG*n%r@#&J91A6NWyTkCe#mlf?e`T3_S zZi}`IP9$pHc(nghalGf9v$U0$75oUGQ*(!d=N)H#wfcVnZc^vo delta 4292 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 - //Configure Razor services.Insert(0, ServiceDescriptor.Singleton>( @@ -59,6 +57,8 @@ namespace Volo.Abp.AspNetCore.Mvc o.RootPath = "abp"; }); }); + + services.AddAssemblyOf(); } public override void PostConfigureServices(IServiceCollection services) diff --git a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs index 5e2e8e2986..4f8bc25beb 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs +++ b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs @@ -20,7 +20,8 @@ namespace Volo.Abp.AspNetCore.Mvc { public override void ConfigureServices(IServiceCollection services) { - services.AddMvc(); + services.AddLocalization(); //TODO: Move to AbpAspNetCoreMvcModule + services.AddMvc(); //TODO: Move to AbpAspNetCoreMvcModule services.Configure(options => { diff --git a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AspNetCoreMvcTestBase.cs b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AspNetCoreMvcTestBase.cs index de69775fd5..ee5165e4f4 100644 --- a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AspNetCoreMvcTestBase.cs +++ b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AspNetCoreMvcTestBase.cs @@ -1,8 +1,6 @@ -using System; using System.IO; using System.Linq; using Microsoft.AspNetCore.Hosting; -using Volo.Abp.AspNetCore.App; namespace Volo.Abp.AspNetCore.Mvc { diff --git a/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs new file mode 100644 index 0000000000..59d9bcbac4 --- /dev/null +++ b/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Localization/MvcLocalization_Tests.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Localization; +using Shouldly; +using Xunit; + +namespace Volo.Abp.AspNetCore.Mvc.Localization +{ + public class MvcLocalization_Tests : AspNetCoreMvcTestBase + { + private readonly IStringLocalizer _localizer; + + public MvcLocalization_Tests() + { + _localizer = ServiceProvider.GetRequiredService>(); + } + + [Fact] + public void Should_Get_Same_Text_If_Not_Defined() + { + const string text = "A string that is not defined!"; + + _localizer[text].Value.ShouldBe(text); + } + } +}