From 06d3e9851a79d1a0893b9c448bcab399591735a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Fri, 9 Feb 2024 09:33:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D1=81=D0=B8=D0=BD=D0=B3=D0=B0=20=D0=A0=D0=A2=D0=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AsbCloudWebApi.IntegrationTests.csproj | 5 ++ .../Clients/IProcessMapPlanDrillingClient.cs | 8 +- .../Files/ProcessMapPlanDrillingInvalid.xlsx | Bin 0 -> 12846 bytes .../Files/ProcessMapPlanDrillingValid.xlsx | Bin 0 -> 12766 bytes .../ProcessMapPlanDrillingControllerTest.cs | 73 ++++++++++++++++-- 5 files changed, 79 insertions(+), 7 deletions(-) create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Files/ProcessMapPlanDrillingInvalid.xlsx create mode 100644 AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Files/ProcessMapPlanDrillingValid.xlsx rename AsbCloudWebApi.IntegrationTests/Controllers/{ => ProcessMapPlan}/ProcessMapPlanDrillingControllerTest.cs (89%) diff --git a/AsbCloudWebApi.IntegrationTests/AsbCloudWebApi.IntegrationTests.csproj b/AsbCloudWebApi.IntegrationTests/AsbCloudWebApi.IntegrationTests.csproj index f20fc316..a9d7713a 100644 --- a/AsbCloudWebApi.IntegrationTests/AsbCloudWebApi.IntegrationTests.csproj +++ b/AsbCloudWebApi.IntegrationTests/AsbCloudWebApi.IntegrationTests.csproj @@ -22,4 +22,9 @@ + + + + + diff --git a/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs b/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs index 7c8c65e3..e60f5e90 100644 --- a/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs +++ b/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs @@ -1,6 +1,6 @@ -using AsbCloudApp.Data.ProcessMapPlan; +using AsbCloudApp.Data; +using AsbCloudApp.Data.ProcessMapPlan; using AsbCloudApp.Requests; -using Microsoft.AspNetCore.Mvc; using Refit; namespace AsbCloudWebApi.IntegrationTests.Clients; @@ -32,4 +32,8 @@ public interface IProcessMapPlanDrillingClient [Put(BaseRoute)] Task> UpdateOrInsertRange(int idWell, IEnumerable dtos); + + [Multipart] + [Post(BaseRoute + "/parse")] + Task>> Parse(int idWell, [AliasAs("files")] IEnumerable streams); } diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Files/ProcessMapPlanDrillingInvalid.xlsx b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Files/ProcessMapPlanDrillingInvalid.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..09865489e5be5982baf66a671d837f3776a46010 GIT binary patch literal 12846 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 W2Yc7#KPX|a0E>5HD5L%3?0*2zCWtZs literal 0 HcmV?d00001 diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Files/ProcessMapPlanDrillingValid.xlsx b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/Files/ProcessMapPlanDrillingValid.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b2bdd4466b5abc39e1e1c3340008cd23609be9cb GIT binary patch literal 12766 zcmeHt1y>zgwl(hV9^4Kb+}$;}TX1*x5Zv9JKyW9xy9bvb!5xAI4}9m|?tbacz3=-2 zuWO7`wQE$Zd3IGT+iOiFIY=lhFc>g6FfcGOFtTV#UKemMuxMy7FibEw2wgD;dsj1i z*LP}Oj%F_UKuWB``N?o1?7UzQ-fu)`tEn@HlKx1ftvj&0m4Dx2eQXL39@EfzXil6Ez?jYHo*Gp% z>hnm6L21@lo)e;12|noP_2`}$G1*%zhj3ukRj_-A&N6h!R;cbv$591C4@iR!xUSA=>l>Wn38`YU9Za`P$L8gcZ zvekFaX0|R&z(4l?wbB2>hWT%gUYYn-v7Z?!^j!KmY~*fXJswR|&O=1HolMO?KxPfK zF{Y4`aJ`#`2u+P32vX{Or~mWV>Nhg`Hgn}4CrxF&UrH@LLKX_=kw2Zyz#efiw)k4@J7P=r=6}mc8q)0DXC$q{2%XiKC@qr=Xecp!S`2;T#N=ry(#?$ z3R{0Q64|n1qesvik%9yRBLIT~_q1jDhn;vhINKOIIN1CV(*9*L;Gnn$LixYFbtFz& z4=^JIpNDh>&2%~?z9^0H`p|`RHm$-k*I|UcwKXXd@_Ncl{?1ujlr~*R$$rf;VgAH( zvrSCl_Kl9Vo(QUKCF@Hgg2A1l<{fExBU{@Y3U;(~Z55D-b86W}LD95bn7oWz#W15k zC|OOHh}}#uUoLHESj2_E1Q1k>+9sjB|Bw^i&5@sJ6`7-q=CMyO;Ey!=;9$4Gt{)TE zk1Zz7Rm6lq@Kqtc&sv7P&BOctZ2pH$~|ShCnw2!-eIW{aUaG@+kjUZlnq2= zqC**97xM?k$Q`;cRA%BS&SK^^$aZePcuf)#b*PJDl-ylLA-fcY-LpflJd>GG(qc|= zCa;&+E9xDMoysTK&0&o5kR0ijE)2!6AFczPo=m0T1XBGl5-e;uNDo*gMHFi=X;3E38e z@7N2Ge3T=wkY~W&RbisxMQUN#W>eBixElw+(eT(zUA6(#`TSxN56vWmWxfE?LlV&~ ze@5;jDhxV@9v|=Jn%vY9z4WpXsBeEQHR!L+c&*y?RQu6S71a2$Bh&bqQ&WDx`3&>4 z`s|ypzQen^<)Xvce7=F#$!~~;74!F|heTVs1zT1UYcxL<&RROt%Is+;wBk}r5zC&{ z{F%Cwo0r?w+b1im$x^TI6z2Ke>3LDNh0=u11vevV_Tt*(_Uyb={Q(ZQ3hh26C$jY( zRup3t3?0^`b2sZ(O=#NDnk5So`rD?)B6i z`KPLbb%Sn>tS{!$g52=2=I0)g&Jkd+lf&Aj`A4mfIlYk;kOD|3nX6WX7b1KiyS4zN z^?TE{hyX=vVp}9JF%QiK57gCrT#y$3)k7NQ6VOhAyyGki7#Q+D^xVbO%ht^056?KS zIcdMciPnXC$OqQ}c&yu72`w7rjSYZq8ibJfU_cj9AE8tvtgP)5m3vovKJ9T>7uF?q zB}p8aSY>y*JXsuNk5VU{u;F_>86ArB&Q8{R9bH?smtt4HWrUm`lV`62?x%0kva0C< z!Zi_FuS{@Lkz~#Gc{id>quH+a+wgj@z$J7YfchkH$(O~Vfgd5IaA8~_@l+bj$$*k- z%3iN3u9S&OeUI(rbZ1kveKU6y>4-f$)vp<}fJ#eQeDzfvL~S$9_YK>k+sWVyFqj!@-yJZbPLEI3`-Cow(fo66jwo$_p?x5_IPrKCA}!f&^7Dqhfr)m|7Z}AU z?#zfSwpvr1*RWI-=FaPr6CEETY(EeF>AI8#7y&wy_WMWPWM=fRc#BBs+@7A}T!$uX zQ@pT5X6Cat%nD5m2LT~GTSuKBr*wo2G5FhzPmEb*+@?iJ`E5lNjW6mS17FLO5Uw~- zTp~3CO^Q`NZm_Jue?n9zAZrYzKWRYYl0B4P$YS>m^LMrzFZkr>OgDY1ovUY)&2uVu zfE7$l5v^}y;ZNtzdt|(dh2t<*q~>r1*E=kSEBOj1azqkCZJxhQ@)7@(?DSB(WwCe} zpL=KwGB8Z5*SCAMPkpfI(dDCwsbmzV(Cvf83^r4QOd@yi zzENmf3Lx`n2$Cbb@(x3j%XDskwk&wM5+!XyPKn3T5AD{3?xvJI7xQ*%mzCqk6v2vI z3r?bcfayHBIVnqmC8-V9_1ktAddx4egL8woSLJzM4ji}&U(~B!94O{XG**oZ%20Uk zEc|?yJ}~;h#7_S_zkAQ`>wWL}y3}9tBm~PyYe%b^{N`{yAjjdh1YGltWwPL7^FeS9 z$9?5qQ4g{zS9==ziqNaH^GY(QW%Ds{CuVs_`1H#|m0*AurX8eUiGvL{M{mu7G(o|; z8XTdCRLuwn#r45?k~nF@sldTml%ce!J=ToYE}w_hP3kM?yZGBKsF-EKDI1t(?5{kl z3EkhOBrKVkZ&oSZOp`e0Jz(CsZMM3zIt%#l_p18v;zPS*c)mEZ8t6gGFmICZ$F(2u z=2`%KGJTmfKT}3u32OKShc=*5;t6gA&q?)teJ8oo{kNGBpB<}QFUa0SL02h$#WxpA zGc#A0e1XUrpiU$qJ98r{I~+MnihYD_0y+; z$gF2?&v9yxGwX@JjL;klS|4GW%;Ki+5#*p&&XpdcGD z9Iu6qSQny9`4g|-f8c9fEPPqK;Qm*c2ruT*hbY47%5rPFt9P)UnG_n&8Fu|NgLnm0 zv|mnR{oe4~7j}PH!*&F3;%bXFX~(m zdkYE-Y#jp(4DT;*;Lm4g{o~n_wX|IdxzYSL${$d%YE)UIH}7e8%80T|%(rDY*?4Z> z!hBtXK|^=0e%H-t#D}N!^}bgxugkviF=?K_&qvPqBqTEXlD$@WxREh4l;8M>zxMT6 zkneC+11Lj~kY2)GyJ2Pjp78yH&CS@LYFECRPEY*)ht7CbLS6+Dprz;)%9JI-J99ls z@xH=zJ}+w82-iYN_u3N@UU;K2eP*OVK_XvH6EcClE!KiE25G362&mU<=Uz8@yu+;x*>qX1 za8|FmrKLauR9?aFw~ufa8Z8r4iW-tL<$g05H9CE63m8B6Mm$inR(V2<);CniM?ER; zE1=s;b#P(b*KH&6#hB11*pmPkt z;g}N*zbjGSL}0WpK5Hyc-;~|#G}qzaIM3-o&@1?nWwpRx$5jQPX(_}}mjVx0T!Evb zdWdjo)X-g;6OI^RA2FJbJ1<*A(0Rtf>a`{tQ3{l}p?f{UYfdCAKS3tEDK`Is6Qrq0 z#7T?Nn3yf8S>Kn>qlQBq{SaH$sYLwjV9vgQwNroUj)~j0O3o>t;{Cw@(SggUpo7(E ziP^KIvLk1JKtE#%si4Pf?~J+{FvS)Ok(Sb&)zT&SSge%%$EccrBYqfk=lX!#-a{zA z24QB*l{@BA$^oGUs-DI-`)%XK)iIO)#}B%6iiOQ{lU$XgEh$&*ZKAg6aZX;NtHhCy znFm?!dR55>3riiAA_2I43yq1HLa=dVN2L4?;d%d>o~Snhwbp-$^#SOW%7%=JGpre%k5SJccb_) zn6~ttV@Yb#4+UEl4}_@i64FPq#t$DhfQjeT9hvgQ7Vk>Xc?buJ-up`|@AVHt;w~|? zJzU=rzvLu5jn=@A8?4blJalhuxOA6S%Mm@SV_!G6>7rM8`ztTdFQbCOv7kpy_*ZoQF6<84X}Tz0t>28_}~H<-IO=ImL#^eMJXNvm6ZM_A>0`f0PBDO1M4OD zqXzuv!pGIp%+8GI&;6g#;8c6vo=^g-OKO`~!{_|b!NX3UpQf=~R^2-SN)&4V8N;z38iKqrJnM#d%>oYVlHvz8H=B)*#WuW*96k2DxU9QH zx6A$nk3|=o5H8a?a#>>(rsQ_1JuVZLEuz#s?>ZcFUUvxg%l1htR86RVPm6 zPR_er(5o)N!j>T(!mA3}h#dtD#t*dLWTLmD#W_K3ggRl6qtuMj3Q13s93oqFsnL2q zpe2knkz)m}eC2A$GY@NkJXvv+eq1(qcj%ycNVzS~eq&Y7_<1K}dTHv`0=A)~fuUJlvYuql1d}vE-9XRrauiKv`ZgF2UIghkr z#BFy<&mPFUOgAc+r0npuY^No5N$WTbY)sSXOm@}AN6rr;;L#7y%Q~uj&TcW2(IZw} z_^43CqhgjGm!sojcZab{KXx~PL7>XdF9=<8m%UMcj5};DWIpZk{W)w7tid8+Ecv)a zMVn8#qAh}}S98iF*&d8!(q~`1y6$^7WuF3^nfdy}X-MAR#S5S>SvBr_p!s1Z!VB zpBM7t1le{nB42-mp}zNeEW?Kjn(VlEz7E>RCE|bGF5Kw$F%96tm{;A>$1pb6AM{y_ z;SR2oVLD9RF}QNZSO-IY3jv+Kn%_1FiR|eXSqi^2&~|N4CCp8|xi?BYxp+pJ;b?sL zAd6<*Q^j38$<4yM8F?so>F9wGGm%4siR}Sdps%_i82Nd+iN?gxz*yx7R*UVLR{~v% zg2>1|!r>BSD0F6>TKxJ1=ZJ^khf$TdIalOA3J-P-yOT;JxC!i2-)mG( zpKG4g!w3|=IeYf->v?;S9b144LYF4_3xy2SMN!k)Fn z`78_%QO$O41 z>qgt#nf8v`*3|1I8a}GD1wf*c%?ZIZ!o~HtY>(Q#V+PKE0>C84V!fr9|q6V z#7db^ZK0g`#B*hL1i5D?XzqAej_5<7Z20Q7Ake9XI7L^Ku^=C#F22B?baVo^id5G| zU#OHV)3vA28ggrdUK068P%%KKeuo4t!oqkW&-PZUL$*J#;h?I`>Y#;GiGM3+v)L?$ z*?U_ZAT&ZerK3!Wb0VK{f7K-3IT`Nb5x}qG2;?uw9#!gF7Y{U?Ny}v~`3$bQ3(TuQ z-x|%NEVADKv>*>Nwfa{pxvlb)oMJhvH!FYP&}-JSZ66e^&~8Hw34t}5dFx=!>nJEu za{WZ`waeK86BxS*yxC!XGhUJ2!LIl1E0)|!&RcJF6Su*bXghS$93O)+RlriFLA8dx ztFuCd_T++ZO@@t^|EC432m8jwRtMd7j8pcpuARmTo|?lao?!sobw#7zAYBT9!Y5@r zzL=+LGo)z#PjRhGJ)N`FKmL9dl>ajrZWk2naB=?EHNc+{Z$fL-en%3m6Lv(1d0-79 z%2s7wRGPrDj?t@`eP?u6Qk5}+b96tRQO+HWwAokcg>=LUjdYaB@`ZL`y=cJhv4)D@Rw`(}z zx$XLls|p+5p%8jV4FcJJJ{30^rud`yErgGT8X5Slk-4Pk)W-|9Y=APFvCUWrzvhfu zW3gxI&bVk0zJCM?YZebD37XH5Q62&nnL8uGtrQ|nIEG#BPpV^nK!-kz59cL>lG9lW zO6P&B*=WP$%okUP_G7#HuZh(bl+ zIve+QWJ{NhQ_9Wf3H9EKpKA*Sj2lQMdq%+5Q5T3sx%J?kSgL&v{SZySb{VC1SQmM$ z0X-XO-g8P}-lMaIjc3A^iLItSC&^!(j{^u`(FiC{2{lr)LB^R~P8fEZHz8*3nt(e5 zTSLTqXDiOO2);8OZD@#HYe*Vrba$$i&)BlL6B0_fEXwC7AVf#|0r$zXfGpk}JpoHR z?@aeTjtMT!pYV|0l!jLiuZmTJRO9}bdECTw)aLK}{B4SW>H`Rqr$$W>=?h~^B zBN6RX{|Sivb?cdWh9E}7lMvgZpBQ8U09Pe6UIz4X^N>*J0_BMK1Z-YW!6Rl{Y;ngr}NS|clSZJ?Z%5-??_UU=7;2c6$HN(0PJcLZFVH6E~W zgrUb`A6r4W-U;!EiB?HY7i9eDBJgr3T2E9AUU(_ByTUH_pHsKybR-pRcrX~0>iJ4s znuyYBclmj}bjFY7nz9AXX1uaF22e>VZJ7{~$05v!RPUXlaG%7LB1;2fw(v`h*E$}~ zR^+Qyyd`jwD|)&N%OcG+N8JKNym3~Xo5pVE8d^Juiw>Nf!;W~WRHTrrz-hkTGr=Ai zWoDc)jaXVY2J>i=7qYuli}Z?Q4a#|DM)f&)191nEZuF|Bvdy=XY?v)FMzcR1fOb>3 z8KXpNOl(Q5wQ*7ST<%?wIMlJv#;|)?M-tMsdaU<$y*WwK1&HSpSDPaO`0jT|O>cme zmQH4^a`|4zF@l~A4y8e1?W?*R-m5KM?_(;*IWieDuMZU+XRFJ7;nqvFPZ+CF zl2hKWTMNlQ7m##ZzxkqQ?}nwOXkXkS*owMAJhf^!61z9+nQ+e3{pKzO;B&R}v^8^c z>Z|uA_8^eX@mWy2el@rUX{3&it_I544>C5q+)xt*;0pH&9kbNGmAw%}J{r5nA^bD7 zqdn{CHnL#2P$!pg^z0H39OcN zun7`ZUAtZ{tF1Wo;05uFKv))I3AsHnG-~aX`Un^*p%T z4e1bK6&_iBaz&~3h)43G_I)QbPtxWrVL*F{2Db;PFEIB~jwQQa%*jauaPd~Ar+VzP z&EqYto@dfKL{GWi+Otw@$O4!^)dqt(_C^F&HV6(qUT7Xu8wF;47!^Zk?rd&UG^b^^ zg840-FD_qGAu(pBooTW7rr*HHw*>WAjq`#s&pYztp1J;5j7$`M&fr42Fl>Xlq;Pi~ zX4!GHBLCyNI~)D}(sPcJ&KH9pZ8K{pDBg{oA`Kh!PwV!IZ-}0=y$v2Bhp}IZ=B;|k zCZ3T*3mC7s04~VA69T#^g4>&oF>|OIW-BJ~?FvvL0Pv*|)KvDM3yfvNK|a?S0hh(E z&rJ^pb4*zqT<>jPUT#kIYbJ*$^RnVLI*+?%Ua(advQw?iFt6P4-Rb%OU^+WPzfa%n%1*C@cu!X=1te+MXQ{TUwD^Nv*To3LT zxVh!hCoBwiY>$knLw=SnRlLm8tf=>!J$wG!{#XB6NA^Cb|8hX9<^i4&!~nWj1l75^C$VYl7R@YrH_Rq zO6t-g$90KfNkb28DtU&tF}x;XA`=iz^Qy*ASq=wJ=I-uMCl1!S#=4K?I(M>*eZIXI zvw$V8@^9v&-VfUkh1hbXJwG_ts@iDe7In)i-7MUTOVvo37geb$FrZ>MRyFoOdS>1A zEuO^ROa0EqJ|OO;xQd|5l}k-xEWgQ&2?t@^eX`0sm3Ar1K&d`elX2#zye8{P`_b5H z&^faF7z+}%OB6|Ueb%nC(8H+cj&$}-u)TV54IYul+&Tl!^Sj(mGWgk~(o%568Z?+(;ydk{rT~Kzi#L0l{ z=nO$7;xDpANQO{kz_L}O8)Oc}aQSBFVjP5fq>|}^XGzCr3qvJ$2>ozn*=R}PHI&E# z8ww*R)gVo>%qJAwQ}mz9i;SU1`Sobm;iDYvdCvW4-q=Te&l}`)R_c;z+Dg4B2WZwO zKcC=!fFnWcQD&U$%f!ZCLZlI%h~X8D7h_{wpc8J-y{A-*DW|D*fIMPb#1ymY682p> z=Fg?~v%{1L5ER2FAo}=3*byXdLeJq2_aL@l{Py6gZ)Ql*+=CatemA%vgzDK{l|DK~+8l$$uYpTx*> zygb=WmlsgO@G8g92F^y&1{gs?g(Ym9dazU?j0grKi?jA>CQF+ix9e`ITpv6vCQ-e_K zqCx1%*$A@(wLAi#%VHCdv^j8%tuwQUpQp|(;BTpnDf*IT9>QU^;R@|3JOU@@n5-)0 z1i(8nKqsc;IiYehDJSj04@ID)wQ$NTx*u>eEc$sZBK##?rKR(hjrcUz#%1w?fRBZQ z;+lQ)C?_Ik$17I%RIWjPX`RwpHC}%GCWA+xx)RR4>kqC~Uw?2H{dOk)9wa5rER;h; zRL9y0xHDf-V$Yci9<}+lj5u4mfQ@sxu}@0SFUX%W@R!3mPgoJ7yKemZy?F_HD1;op zRUL$Pn4!j9)6uU^7(3&Z6!MUHalbi>$30(#c18Abysg>Zq^1r^U;Cn(h#KaVnnOnd z-KPL3*NA!L`DC@7Cb4X{fq<#+KXwKCcWMjimO?KEQd?6{!-M7@?%WaN$6d{wRn1&o z|8VF`zn!xHjjilYReNRoh0*+E!~rCyus5XNpewB8E=e0B2&~%7l2Q#!+EW&4;jIwV zFTZo$n;1M}F!2&%V~M*gX`3IMP3$nX^R0g9;~;{Ya0+2WiWgAiZMwl#UK+&|OUVUOYVRL4otH?!$CYpK}289kf8TSG0e3A4ZOj|Meaq#r)@%oz!bT z&x{75u62m*`YatmVC(QyDWO1bE|cLZ-0isHt6-D z$SyK%I0lbcop_Ct+?ZHCbyYnwMg9V?VRh!0k%5q05zR1@1YYAxDavdsr;A$JkW%Pg z>?RBO_UwOI+*JCYXpFeSRxesOG1d`6*Ae^=+u2 zhf*#yWqD8RB1W%cpe7HOO`VdVM{G(Q$5kbV>2#$Fwir|{R4h@WzeBr&e_X%Nqdnl! z-LXZ+sFLgO#`WN*8YSE+Fq<0D;if_w!e6NuJTlhzapm`gZ{HWYu6vlUWH=lI5-r7= z{76@955yzFX+rjnw3<#nhHI`Q_n!d& zNqPO3;2+0IkU9Mu0rq#n|D*x_yWk9{`18M$0)NN(ofP&92@%v{{*5B`yYTN!n_t4$ zpbQ)&{EK(_vZwD3$1?}YJUg)&q(nL5)8~3@NaYaXWUSdg9d5x9~3TRFk6r@=mGyY F`+pnDPWS)- literal 0 HcmV?d00001 diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlanDrillingControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillingControllerTest.cs similarity index 89% rename from AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlanDrillingControllerTest.cs rename to AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillingControllerTest.cs index c0ba7093..67844201 100644 --- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlanDrillingControllerTest.cs +++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillingControllerTest.cs @@ -1,31 +1,35 @@ using AsbCloudApp.Data.ProcessMapPlan; using AsbCloudApp.Requests; using AsbCloudDb.Model.ProcessMapPlan; -using AsbCloudDb.Model.ProcessMaps; using AsbCloudWebApi.IntegrationTests.Clients; using Mapster; using Microsoft.EntityFrameworkCore; using System.Net; +using System.Reflection; +using AsbCloudDb.Model.ProcessMaps; +using AsbCloudWebApi.IntegrationTests.Data; +using Refit; using Xunit; -namespace AsbCloudWebApi.IntegrationTests.Controllers; +namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan; public class ProcessMapPlanDrillingControllerTest: BaseIntegrationTest { - private IProcessMapPlanDrillingClient client; private readonly ProcessMapPlanDrillingDto dto = new (){ Id = 0, Creation = new(), Obsolete = null, IdState = 0, IdPrevious = null, - + IdWell = 1, - IdWellSectionType = 1, + Section = "Кондуктор", + IdWellSectionType = 3, DepthStart = 0.5, DepthEnd = 1.5, IdMode = 1, + Mode = "ротор", AxialLoadPlan = 2.718281, AxialLoadLimitMax = 3.1415926, DeltaPressurePlan = 4, @@ -73,6 +77,8 @@ public class ProcessMapPlanDrillingControllerTest: BaseIntegrationTest Comment = "это тестовая запись", }; + private IProcessMapPlanDrillingClient client; + public ProcessMapPlanDrillingControllerTest(WebAppFactoryFixture factory) : base(factory) { dbContext.CleanupDbSet(); @@ -109,6 +115,8 @@ public class ProcessMapPlanDrillingControllerTest: BaseIntegrationTest nameof(ProcessMapPlanDrillingDto.IdState), nameof(ProcessMapPlanDrillingDto.Author), nameof(ProcessMapPlanDrillingDto.Creation), + nameof(ProcessMapPlanDrillingDto.Mode), + nameof(ProcessMapPlanDrillingDto.Section) }; MatchHelper.Match(expected, actual, excludeProps); } @@ -556,4 +564,59 @@ public class ProcessMapPlanDrillingControllerTest: BaseIntegrationTest }; MatchHelper.Match(expected, actual, excludeProps); } + + [Fact] + public async Task Parse_returns_success() + { + //arrange + const string fileName = "ProcessMapPlanDrillingValid.xlsx"; + var stream = Assembly.GetExecutingAssembly().GetFileCopyStream(fileName); + + //act + var streamPart = new StreamPart(stream, fileName, "application/octet-stream"); + var response = await client.Parse(Defaults.Wells[0].Id, new[] { streamPart }); + + //assert + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + var parserResult = response.Content; + + Assert.NotNull(parserResult); + Assert.Single(parserResult.Item); + Assert.True(parserResult.IsValid); + + var row = parserResult.Item.First(); + var dtoActual = row.Item; + + Assert.True(row.IsValid); + + var excludeProps = new[] { nameof(ProcessMapPlanDrillingDto.IdWell) }; + MatchHelper.Match(dto, dtoActual, excludeProps); + } + + [Fact] + public async Task Parse_returns_success_for_result_with_warnings() + { + //arrange + const string fileName = "ProcessMapPlanDrillingInvalid.xlsx"; + var stream = Assembly.GetExecutingAssembly().GetFileCopyStream(fileName); + + //act + var streamPart = new StreamPart(stream, fileName, "application/octet-stream"); + var response = await client.Parse(Defaults.Wells[0].Id, new[] { streamPart }); + + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + + var parserResult = response.Content; + + Assert.NotNull(parserResult); + Assert.False(parserResult.IsValid); + Assert.Single(parserResult.Warnings); + Assert.Single(parserResult.Item); + + var row = parserResult.Item.First(); + + Assert.False(row.IsValid); + Assert.Equal(2, row.Warnings.Count()); + } }