From 35a310a55ec98c836c452f87edffabaa7c4d305e Mon Sep 17 00:00:00 2001 From: Moueed Ali Date: Mon, 11 Aug 2025 08:17:04 +0200 Subject: [PATCH 1/7] Class diagram and domain model --- src/main/domain-model.md | 109 +++++++++++++++++++++++++++++++++++++++ src/main/img.png | Bin 0 -> 52018 bytes src/main/img_1.png | Bin 0 -> 52018 bytes 3 files changed, 109 insertions(+) create mode 100644 src/main/domain-model.md create mode 100644 src/main/img.png create mode 100644 src/main/img_1.png diff --git a/src/main/domain-model.md b/src/main/domain-model.md new file mode 100644 index 000000000..2a99bb388 --- /dev/null +++ b/src/main/domain-model.md @@ -0,0 +1,109 @@ +# Bobs bagel + +--- +As a member of the public,\ +So I can order a bagel before work,\ +I'd like to add a specific type of bagel to my basket. +--- +As a member of the public,\ +So I can change my order,\ +I'd like to remove a bagel from my basket. +--- +As a member of the public,\ +So that I can not overfill my small bagel basket\ +I'd like to know when my basket is full when I try adding an item beyond my basket capacity. +--- +As a Bob's Bagels manager,\ +So that I can expand my business,\ +I’d like to change the capacity of baskets. +--- +As a member of the public\ +So that I can maintain my sanity\ +I'd like to know if I try to remove an item that doesn't exist in my basket. +--- +As a customer,\ +So I know how much money I need,\ +I'd like to know the total cost of items in my basket. +--- +As a customer,\ +So I know what the damage will be,\ +I'd like to know the cost of a bagel before I add it to my basket. +--- +As a customer,\ +So I can shake things up a bit,\ +I'd like to be able to choose fillings for my bagel. +--- +As a customer,\ +So I don't over-spend,\ +I'd like to know the cost of each filling before I add it to my bagel order. +--- +As the manager,\ +So we don't get any weird requests,\ +I want customers to only be able to order things that we stock in our inventory. +--- + +## Classdiagram +![img_1.png](img_1.png) + +## Basket +| Classes | Members | Methods | Scenario | Output | +|---------|---------------|---------------|-------------------|------------------| +| Basket | List\ | | | | +| | capacity: int | | | | +| | | getAllItems() | at least one item | return all items | +| | | | empty | return nothing | + + +## Manager +| Classes | Member | Methods | Scenario | Output | +|---------|------------------------|-----------------------------------------------------|------------------------------|------------------------------------------------| +| Manager | name: String | | | | +| | List\ Inventory | | | | +| | | changeCapacity(Basket basket, int capacity) | capacity > oldCapacity | change capacity to new capacity | +| | | | capacity <= oldCapacity | return message to show new capacity is too low | +| | | onlyOrderFillingsInInventory(List\ fillings) | fillings is in inventory | make bagel and serve customer | +| | | | fillings is not in inventory | tell customer that filling is not available | + +## Customer +| Classes | Member | Methods | Scenario | Output | +|----------|----------------|--------------------------------------------------------|-----------------------------|------------------------------------------------| +| Customer | name:String | | | | +| | basket: Basket | | | | +| | | totalCostOfBasket(Basket basket) | emptyBasket | show 0 | +| | | | at least one item in basket | calculate cost | +| | | showCostBeforeAdding(Items item (bagels and fillings)) | valid item | show cost | +| | | | not valid item | tell item is not valid | +| | | choseFillingsForBagel() | fillings in inventory | add fillings to basket | +| | | | fillings not in inventory | inform customer that fillings not in inventory | + + +## MemberPublic +| Classes | Member | Methods | Scenario | Output | +|--------------|----------------|------------------------|-------------------------------|---------------------------------------------------------| +| MemberPublic | name: String | | | | +| | basket: Basket | | | | +| | | addBagel(Items item) | basket not full | add bagel to basket | +| | | | basket full | not able to add, show user message that basket is full | +| | | removeItem(Items item) | basket empty | not able to remove anything | +| | | | basket not empty | able to remove said bagel | +| | | | item does not exist in basket | show message that item does not exist | + + +## Items +| Classes | Member | Methods | Scenario | Output | +|---------|-----------------|--------------|-----------------------|----------------| +| Items | SKU: String | | | | +| | Price: float | | | | +| | name: String | | | | +| | Variant: String | | | | +| | | getSKU() | SKU available | return SKU | +| | | | SKU not available | return nothing | +| | | getPrice() | Price available | return price | +| | | | price not available | return nothing | +| | | getName() | name available | return name | +| | | | name not available | return nothing | +| | | getVariant() | variant available | return variant | +| | | | variant not available | return nothing | + + + diff --git a/src/main/img.png b/src/main/img.png new file mode 100644 index 0000000000000000000000000000000000000000..9504be64e86e80d465d5768e90517b025206c972 GIT binary patch literal 52018 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 dcd@=heuJroQyKcrd>-3 znDNBCgKFewM7=e!;xT8g(Mn~wxlPOWy4szFDJ-Rr6e)E}#~bnsM%auVk{>u|X$0@A zTYj)OG4GplVY|@9Eqy7V(8)f109&u6`}BM3-cV~^cKuGdb5V1RXrTdsYyXG!Y-!iX zA94C}d-^VJ!<#lKb90$;^%#nL(9bGfR*OnTuO&x`o6afrRG=S9du@~w-v`$%#3~%; zK6g@sMU&9h8H(p-VvIsZ%+?@!p6&ly#EnQ{cQ6<=Bc7 zTwq~RKbR^hg}JXOMv30%Fv$-VOG8|h$8^>YtQ=)gPK*!$0f=1MoFGC&abkgH?1uA$ixlUu!6kn*T4Q{+0&JUD|kV z;XOFy>(6Z2#03^in~B!pvhcZ92eKcHd1SK@6A-0%zasfowjyP=`iVznMA&bEwRg_@ z&{_U;qPFYsC3!JB?mc2{6~uk355~U?kEj;T_VIDZ@2;U8dzU4k-MrwEeR?mp&+(vN z{IZW88`@^M!4Ek+F(Y~J&s6-6{=UDr8E&2108%;dXGar$9*5T*ew`k8_3dQFRR`ah z3@WSiU7mW@deI z*dHV zq4S*mkrRqO7*x*oR@*jBSF z&_C1rIOOWlz7c)^F|o zjQMx`-4fgVDMkibW&SuCOwc;i~PER*pl$G^S?s@W)R@>ho#OEm`m{WlUV&O733Z zxRwO6)xuEFEKO^3&Fja_%F2-*;<$RLxDMy))rQo45m0gH7hibWunb6sbmd@h92B{GWFM)HuXOmwtpPTvz_ux-*e+VZ1p_}wlNMnIMz!S z4gchj*IHWr74g{pXYf$&-;1)JEt*o z-}mo#{jTeKeXr~K-r}NkRbUw?f@VLq30jnQJYvhf?vpV4Ps#_gxQII$d&|NFA z|LuE3pn#GXQ`|L*kUCnKW82l^R_RDZV1&ea#PWnNzA<}Nl-zXTU_<=R+8xF20rQNBX`+)BUQdHqm7Cnz~VevRpL5xuI zH-$A|BUMzeIz(}SCN!B1rVgDk|8#BdEikxPyp3TJ(RGYalOrZ`@vP6+^tP#PRnT|` z)W*g-W*Oz8B*;_x%NJ!dI6eVJF ziBQ8xC||iTFmMei!vPEBB9_A|x4?Y9o7?IFNmnp|XK508m#Vl?sCYNQ4X5=@Z0?8AQ_iDS@Xxz*ff}a$C3uSmOXP)Y@X6{;tR9oq zZ$O*<#qD@SCTUOQ@E=AVQ;qg3g)gD=%G6rXIGkC81rk011Y?uNn$o?%k3%Ch- z9;l?%FWW>3t^INsK7I%8&50kEbpdnFaldX-04+lB%1)WzA3z8L=ZL(o7r80}m4*q! z8?2f!(3}be|GtpDbwwUf)A}$n$urB+@1Iub=XL$n>cI)3JPq_%;H3U!?%y7Q;a?Or zwopV7@5kfBkeR)vshDp*!Vdm@KUwYTD09EB2Xar{3DHyOVC^MrVk zr@}F0bqu4DRVvYSMVe2m$Y$?IzN>=N+)Y9)*jFvQi=<2AyH&R~m;8}pPOF|KrYGh6 zy5^j6UTE!!{U=Ywgq}6owIV8*+Xs2+CQXalXb~%Ls8k5#j=C^Yo9`ayPiqgk8tEt@ zQRnXpjz3}$#ePwJkV(~wOur3*&U2`EjI+!I$di?|+Fbh0FMbPq-<}dE_vC#$tj%Kz z6Dq*Pv;LEvgMXJfwuz#C`6d+D-VmOjy?0et^0&KEnCMBAgS<0FqXnGl|H*dj7P#k< zq}xJ1Ap2@-Yr%BZi)EAOf!gJE7p|2Fsm&|5y&~f#+=NG0Ec!v79dhy3<^-7g99DZG zuIg2%*d~g&XSAsUFvQMan=M9lZIN8x=blz%A5ATlFjy8HmrSzS@{mq#Pek`Z0wgLo z(?Y~Er+#)>wMENRn-VZXa!jmgPI^T$GObgL-d>ANY0yQ$QkoM8SgppKPal@rnoDxY zLu#esz7{UM`+)k|UqW^hqq7fyP|M42!#k>?%Tusr>q%+n7n5OJPpM5+c3-3P6d+ zlyH6iPlf~?N8J?QFnOTUllBn+k2Ux3Gd@_kZ(v-s!1F|#0w}j8NPqKMYqS{ucevdj zlU3g&3OC~p@ge0~CKI1Mv4KPDly-laI(efm}oq) zpllAw`GV@Om9uj@NQOT?ztHIcQlDQWkX9TvMVYi(_`ZM+xvjb5Ckr4rbh|o`<_Iw? zD|ii(zOBoVSc61Y9VjI(UyqtgzOuR%11aa-ZcwcRgkxgFYtPr>y8l1!+y8E67JRv9 zG_QLMK>{WMMmmdZdJjR&$=dObA7aO6trrJGN(;!9A|;;_7qF!xq3{k=mf=ydh9~4jMu8Vu zV}xt0cI{^ML~{B@?p>O(ShgnxEPa%*#`26|HL{*8rec6dGw^~xMZJbVL|$JcrZwx- zYLuj$9!+bvrG>dMAd|IhdJxq)=DwJ|EIcP$L>i22t#&$N!Kw2Kq=@L%1SGr>+!@If_|K^3`Y}|%;7IU#B ziQ0^&mQcR+-!AHl0|Jy;G4}E+a1qKe+SUyv0Q_AzDEx-lt@^JD&fLwAsB5?D;;@cG z!@;H=DAoh04}Q4YmDJfuh;c{wX%_u}J&|5t3wa3JaX`3Q=DT>?s>CzriqI;lbb0ac z!nDqE4hZu%#FnAK)U4N?4uTE@h+5Yn3_Ay; zSUZ8REPaM!$>ONRxb!T3vqRd2)c(C4w~FuDRA=IVpIs9MOKx9X1Jr;CzKXN~C9aKk zc7c95=ve*)KYxaGl)t7$;Dh%g`F=OcpYwvU)`s_h=MbR%|N3WVh+ngswKsq6Ct7z5 z*F_gPes(+XUvJ+)<`lAeoEFhU0|AA9Ft63DiLxP7F!DzXe94&=(v4Llx`LHW^oy-& z==3#zGu-K0hX@~Zys;M~wDiL+x%&tTZzBw3CJ^{_Z|KJ{|F3G+8P@=6UmT%FD0~T~ zaXfq8`=}GL*x9VA)alfT(jA7+&Tm7weP(gPL=EpUE!dK$ZUF#nDiKw>&@X`e_)lT_ zH&k(9D`F;VJmtLo{6zUB(#aau7kzUv#lfVv4T5!Kg66|H+8a9#fYJ8<2eys;=J1t| zLQm3ivtkQOHn7KwIU3T1)nR#!WzbO_@_agx6kbLrDLDxMB=Al@0aP*iK|45(EmF$V zW-vB!KBSt!4H&N`I=$2`s z&f^(b2)_R68`tykuRy*tqv!c#D&;iHq3$o4G|eUTu?~F2(uL=e6XjU;t%yti$xSCd z0V$ZP^1k(vG2oid7>_pEo$*0`td65S^KKw1(-^`8yeQhp}{ zzCld=qa*+S>}P*X?Kcv3d9dVjgDTBuZ>~b(0&{lZ7EK`jE!s3!OzLWPovdIncY*uc zl`yOTVvwzQax{CWipS7J1`z(MICx7k&_U2*1Z9@_uSpWkhnlSE%`>~o3IL-1@4y$b za&W6azn9`%=8}Wfkc%#jFW2%vqRx;Jmhqff&+L8;$&jglyQ5@6rVfA3ZElFUlZv`K z7aM`Z_?Tw*{GPIexwkS4Z#&)RV9WRMa(90-^53sU{4OUk?)JsoZR^bjkWnK^&ZQ)0 zD%iIF5>)^ruf+%+nd&#}^)rhMRL)lxZM{?T3s+z{1D*T3a1VU^|ID9l-V1ei=#xP4 zVWi8AJgR|SULsSH@F!+f7a*04l@||CL5!ikk#lsj`deXS%=DI3W`m16_FSPTKqo(l z+ppd1^=tLCSJ|MU1t8wVh%T#`sOF8aU5>{_|K!NkN~WH4I+PHjCStm1J`w^ZJXSn$(<9gG7DZl zvU=ajKk@qO?a0PE^d6`nF#w|166DZT<|gp{kRHZZi5L*JGJ%s+vCaQ2C`E!(C*kGx^lI2AcgUxyexUKKEY7A0vrtlVGR zQT(pA+mEb0UG97DBmK{x;e=+L+!wDsXaBSv5d{~}3FYv3%Kj$b%#-~04>R9e*0dkV z7S_AI|94TJnED_&{gH>^@a((T_p_SErEiKUP6U66Hvi~Jdp`~@m)=YblM9R+P(~cq zA8b;bc)e}Sann9JhDh+5KoqbpN|@TWvDdq{ca0was*HkFYl818MM>FnJYMd(drQ+o zC7hEKXR6TV)ivnBqG`z4(~T69MEbZLt*m1pQLl+erUri@C%G)y-<-g}OG=~P^iKWZ zaoDM025&9oH^XW6P6mvIZj|%I8&D)8Ss2#-Bu}^dsOyOUu9AVFrI45solvgRwyNG! zfXtUH7VjD+Hk%n7anDm^=w}!K1)O*6gp)6tkBJ#s&Oon>m_PJ`4w2mmiR1jF+__40 zT_YSpwqB4j4)h8;S?O^(-U2^ZdE>Ui`A2#4;{4L**e-vrP4WPGzS-s~ykmn6iDOy; z>R93Y3a8D4V8F|)%`nQL7ckV7;N$m=mkhNtEJ_Ku-A-7D5-boID6N`)5)0?7M+2~V z(Jbjx!fS%#BVjF1l7_{LA9cRpVH=R9isMQgJrb<~Fu5+LaLMfFHqg!WNZjN|o1pDh z+c)@%!pYvkl!JCXDn__yLgKSV;TFcoy0@9QaS%Djd|@S)y_x_p^6f`XmdDD=v^bkr zc6h(o?yOwXm(f2B0SUy-YNkcg|fp9gmo?3-M%Gad`QURmBrA{-zkds5)v~ z6)20WzMg_|QsrlrO9$K@y>pFYadA=;Ab2u*JCC&0$fW8mJRZ-$%b|Gs?Ut1aoA!HU z0i_-aUaA4_4#+k&5Ja}NGH_S&Ue~|n-fc~iT@>cdQV19Cpj*t={W4}n1yh~4_8hpP zA82|lUI&tHfj({|>M@!%@TvJB`R2ipw~v|AT6m9*k~zsa2NpjWilE)hLL;^!3LUp1 zz{K7^o-T!n*E>niOP2=O@@0NHH8vio?$OP=NwP&b>F9w$AdoJm6+~7qC;@`qK=E1i z55DX$Qp4YsxkEVcbJrRNV*jdz?8~9jaw|rk&8sJgS>~}a`swoR7p1rNZ8tdHz#uuO zar&Q6<*&(E^Lx!xk~)7;rRZ~ths#*yY9@YETs7@EwXx`Hc>qL z`pXFjw}F zKjlTd=i2pYxukyK_{~X};IQt)#WQ87x>0n)au8Ex18Fh{%CK6rg1l`Y` z0VHTJ2aGRgo;_jf=)xll7d_Ix(#d^A?lW~uVG%G{falNcK#Vvdo=*!KC(3mg6$kyy zOAM<1y+FGDjh8UlhwhuW6&c#?aKLBV)k+eh?U%pxKB_%VRz`o_`2MoeT#2Ul4&?lD z$1~KUH=OD$NlYkln;A(N>Q`x)P*BD2w{rsy!CuE@^8UVV;J8SWM@y%U7L}5VN{5F& zb_40HjzyyTQeCGcWDhTLuTsFr`C-!x>O|WgV0(Fa2DhLQoSNEA(#fEeFlX|Jd--yI z{!UleK`C+3g_~s`&Sf3ixCw*z+J_Z&H9K#=#n^IVkgi#{qL-PMuDbW&`FmWEpINw_ zw#pu2E-^lGYOCL^dvl{A-S5R6yGZ&5jjzNViC3lACeL-guX*qEmxW=ph>V?}spFSP z%KOYbvUpL%OP(n4RO8C_uEV1nK(!!r*R*BWq#IwM2deE=XUf2bzWSGG{qr9V57IsN z;DntJJ*ww`sN#e*>$tnR-r|vEDnk>b#*;V~@HENm(dGD5 zzfMPv@yRJbnw}63eg9#{P0p{+XdvBGj1*!MQ53sBfJaOOKf?B{6uu1?t%Xa%^OQ8p z|1~jj_r8%2zJi*YE~5_5LnWY?&gz7IycGlAj(gt{#e-~p5leg1ymWD9sH4Ef+;s!= z(M?Vxw!Tbm0w{6oeJd|wT0^iv1Nv*0{zUN8Q#^L^9}e15!K(X}Hb1+XadtxGAl1r( zgyJg>qPVJyb^1Ok!4D82F8I-SPjX6{b+5`hK?CrHqKCOeMUl>{G3u?K+q;+SA<6zc zr)oGtrMPEz`b+bo(cB?vQUSy1kM9ijK=m|Q#NnD=eox8JzK*}MjP9(~z>kVLTZ?fi z0HAVLkpBFLqGfx-h%@(>ZHNx*_PSAe*S9dXUFgREM{LJ|_2|IOs60Px=?L)mjm}<9 z(n~_=SmAIoR3U4m7wOn=`J_k}Qm@m~7cUo9rLo14zq$ZaC|Usgg96ia%b7lF>6dte zc^C0)RAM^4tc2|(_R*K^h3C5>Ypd7U? z@`=IPI|FHrod=$0ixIVvvbhnh)|g|RbD?9~fBZ@vEBLLOQ9wVe1{7iI>2dD`*Df(g zGocH6W_e^8Z3iD@DD6a34S+V6!7WAxY=mQu2S>)nngV$45|860w~Nwj1-}&-A}SV^ z)js#vyBvlADuQmAqdRmn2XY>Nx@s>merr1!AD3FMu|-0FCdHO>TO`T|&d923WR&PO z()%vx&@|oXEHe;Eo<>g@C&mXl8qC?dus};ZF{m@##4J);j3TFgS13t z_vpQqJ5YNopg&;)OAcjFZhPJ>}qmF#IUfmF}1W)~bbp!roHOG%4 z3kJ08G7B$9g?xx(Q%DaKa`2L$K29%!({k#s80yf_sMLR{bF??{kW2dGzLTzsOmXVB zz0bX@_X`M>urqc|gZG-7Od~%Af?r8nd`)!LZJl;9@v64|a!lyRs^wJT(WQ8Ubm=V) z9HePc_Phh~-1lP0v#H~3{-hB5)N!es&ndgT{+Sw=K_)3YWqepK-eSy>eFYXGUnUsU zMI{jXz>Mbbm`co5Sm=(E>S5aKRZ@t<07MBz+3muy^MH$Xbia$+zUO?xp4j>H0 zh%51tJjgH>4;J+kRKNJbl}0dNvI2xf8kp6`*2bc9CM1Q);;S8|iPTnw`A_DaM;{jY zGUoXFg$F7(f({XPwpiFb?t#NbW_|A!a|f%PMFmT6ec1lDyfIfN+4OuMjMz9TD}gj2 z;j+)T+;VB~uWiQ)4T+h&acK*=A`6|M^^Z4>4PB1fTDt=gw?Cftgu=!)&H;MFrW>Ln zvh$p?^m{=fz7b8ODW&$r*FtLby64~oV?|H>%3VX_sy^pHKzO* zPL6G--bu#f`Yh4WiXylE(N`~d9lwH~rh*-?G}-oXi4)d|f%hz;D4C1t=2d5MLX?36 zeJ&r*bB`$960;lq!u4zfzI``IPVN)70fuFA!hWrzlcjix^`B9R8dl7`Dd_UWgohto zLGP6#!Kl(yvs)<*Bv^8isJ$FiKei1lAr12r`pM^d_H}|rTVSK4<8S@&Je>nMrTNAP z3vIMop2&9EKg0^P3C4%-Cyw>>VBo6va?>%S^zpMgrp`6xZb#`5hutqU_hP+4{}ZzZ ziZyaK2sD=9?ygMS^sl<4+!AOU(*sx3Bsprx2e5RTm(LDnwV{nW^e3bbj10Qzu;&XQ8;4kSZliYn*CKzW9iam?6rqh zrRX_N)XZyJ$LTtGlA9iF%DwM9^_`1uupXx(E}c=4ZMk>SCw7LDLYz?b2OV-FrB~Ke|!^g%?!9p zNjRXOI@|+<_2oJuws@U>*wv7zTx2Fyp+19Q4A>`Hg-_)lS_p4O8^$tSGg!h`-0y#d zRWQ2Gp{gIPuZ**wsOQh)@X99Wa3eE`xuJ(*QtDWCFek;oNO;}u$fDOm!!VV9;76eR zy3!T`MQ%qODMVR=z!%dy8|h^;i~~>vNrG4-Ao~qOj>)CDW|a4C0Rm=6eZ^r7y*$F7 zs@h*x`9|e&_@6`#*EBenZ-K?~8rrtrHhmx)?&yiC?jF56QNlVfI63vfTRPimncS_j zEal}ou|Htnx|;&H>Y*aINmM0ie(%lz_8}mvRM~9$>!j7-Z1#6Z7xG(CP zku}>8+?GKmf(s2Yi>gxQAZVQ76w&_yrhYgOkR7Y@&U>&7ey*nys69R5kwr~7twi}( z70`{l@IL*MUFh~@lKb+7iF%MCtQSDzzW`}gN}lL z{eI+?f4=ygi79~n(&zKs$$9$t`t99|V-6{GZZlbppbI#~hJb7Aux~dLj+v`58j9fA z7PGuSNKtm5Z)i-Eo=zGHiCNIE<&~cF2@h~z=xwZ$p2^%hry1y)a^|6x6_a`4U_$sl z3v}lBO4r%9Txrr@V;Qb-0g#!(;DX;QY|XXdv)4ZJmq03*)c6kRxCH(q&#BJ2OQ;_p zD~H;muIaRJhzM+K%`zJ9FYVe1Cb%yVgrV0yUO&{^ zKW7ShKjsaSJvufNd~Qs4v#U)(OeYULNp~?Q9vMz6N*manj+C38LX}GTD4?2KCi(Qm z1jkeRbAnca{A;(7d}h(AljJ9z0UIx!yPZ_$I%d;&EU)8MM40g`^zz9e1DLZ$F~j@k zBXm;%%&M`MYk77^UfD@y`f;LUywe+|=*z@%UTLsRbfq(X2%lWEarOue zi}h{R}{n-*UCma~oPltWLY6Igi9-=|0H^=B7TiRpmP z-rD>$-KGDi`O;5Lq9*=)hEg_6xUlEpQSr^J0>TfWK8x4i`c^4P5Dh0f)vv+>b=5fT zi~=#_!y<;xFCYyc|9Q-z)VVXON1}U9>Ctv7n5d@Zjy_ui3LoDY{YmC%vBzoY#`EzS zsiU4QFU-@(8QxNwGE_Modsqkc>=N5?W_N{~mwfNac$=|4Wu25u& za4L9bnWPS6^LyjRb68--GiOa-Z#krb47V~ePyndT){QIqWbd@lDcQw>7e=@Wo5q65 z@nE&0<74&_m&poVhGI6m8#A`LV&I-5hw69FrxlGQkD-Z5B2qs&>~#1V*q6PIFmv6xAFJu)nb_OfA%+%Hb}+^fX5C zR|yrKD0y8r?NFv|rQ&|Z$`MpM6u0go{Uye%efwm$sq9@1X9ZNw#Yr*R>v45APe>td z*NIxb#=sNX`*Io#gb&m_tC%y~&ueAvzN_d}V&GyQ@IVe6Wi2Lr)}x+0oFbO~V9h=` zE`yh5R{w5L@)l9k$4tZ|;w2|H$ zLCPVP5rePjM9FRI#O*vJAkbc+Z>>Rg8$F1DtJ^z2@NK#}!3gW#Q>ksfwC{ubgzUs? z>ppHJrGXLql5OCw#W0SnmR($A@Sdl1Y!gx3)`TmOw`#6BGne*!Lb{oE&#C=+8;eKf zTAjM2mo8K}lf&nw3Y~6M=Fh}W7tAcjZ|-~XJrj|Geha}VAS?(O&q_4L`0}|-x988+ zKc9`jIKB-rKop&uWOK!~S_Po)B_8#Y=ujE1s%1E;+Xa7gFLPwgD(YZ->4lsuV;{@~ z-)zbht+99;9Zh;F05eCqZ0)W^kNUbYh>99&-+m0TEJ|*)S+pt}bi#bkV*$*XAH5;; zg0Ap#;NfjpCu8@0B09*|HKuB+F1fy@fciXu^nvbEXbWMH3YIiczU%(rXZ46}(hE}x z7Vk_Xn#bsw8aUA9Rqk^|rfi{(?Wo3V*9=e;*aQF!J1c1PpfqYx4hLWnSrk7zl(>dn z8AAO%K(8F?XeKlsSwZl#PX8H3ndhSz5&7|X=A5XvsEd!GCzZ)YAs{h@l{c{H^5)15Q3eb(zu-fV}Ta6Aa5g`BnEo<3^ za0=TMS@faz@i`2bG2DR8I>K+YFtA`TUKT3G}rKx(^63Zp6RF3lt^} z*0q;rTU~KiDolCcy$EuY)nps!q%t13XtR)mxn#TDLP~kdP;RZUe{1d3$k!%QBN|xj ztHGfYA-9%h?&A&kK~@gVnb`5itBf|q|6xJC?*1YWFve1=k9K`@!L^&@N+$uhhFvNo z-Jr==(N6_W>eg@{|9ErYtX-_Ivcz_uH%N_yxhF470)^Oui%%r#>~Gmw<+khiaz7lr zxPurkdrRXu@R}Pz-o0Zx=pgvcpn;mJ+eltUuCZ6+H_o6D_ZGZ2<}HV>_gN2?2D&Xx zKz(}yz?w8(pd3qSTZT>qm`B)Jlb3N%pmqO>@nzixJs;*TE?iQp+oR64o^4U!9pvf& zJHtP!Me3kK)$K%c8w*IpcBgy&LtchlC+)J6c}^op( z^7?!-ii$L4LaA_X{|1Z*JD8@1=!!mloH-$7f3x&crbusH)yVkS#(fotR9w^}XY|R6 zuLpmkM`Qrf^#or=ORhoifT3@qb%N+X{77p6F}uq5rhsr<72O^2uiwpY><5=gp)fjn zDWp(cJ&wAomwG=h`2W9cw&U)`{sVgi{tyfS?pkkWiM%p%)k9wg8yW#3;s$g>8g1bA_5%v!_n$B6^_NJ7!uKlA7PIsuQel_kDdOAh6qDxVi?$Wg|%K_<>aqrt{QPLjLdh!s9#;_T; z5z1-S2}uwGckvjH@RLql5$jv&{3FmGW3zZ@{W7w$RApwY`rZZ2-v=z~=;){u!ZEu+ zFO<0{jIS9!kPasIJ@dSJ?l!cYEg8`59!2IC7A$%RCPlVdee*Ce$h)kYN)W0C~4 z_S$_;)oDV%n}S7mr|i(SNh@SM=FB;hY{T+Mrw``Fl48@`(wvhBBQSJAs0{4IDs8u} z@wR||e_Q!2Cs>k&rinbBzF91B{aAAI0lz4ikC(vYLdbr@z4))xut4y>+Eq3}dIB%k z=BYoMHmY#@M$x0&%i4Jc4Rbl#Ee;Yn+~j3zU3>DA+c8o{7e=O*!*Ul(5Ue12{O%EL zfJ(|SJY&NqD_9^M0k+%u%H%1&TM@C^FHgy8v)kYQYjo0(laD{bpvk>TPEYH|!^C5M z^_~?Hh^F`Huj=is2uNbU~4iH#D4CvjD0f+1`L0Y}XYBK?BlG)n$qy}C%Uy;Zsnqo3(`1Wyr^F^(T ztzC!sZeSzs30Q3vI)ofN@|rN`H%f}up5^g~Jh!!RM^HzhuSe2l+fxT>E^TWQzW@E| zWDk_1a<&o8r-7*t14zx7Pa?7s6FV?xlD#juPcWA17;Dz+oIZ&yKrSf^+qD^%$E3K6 z!QBf!Frm*4KcB1D6MU&NpOq)$y=aa3I2PZq4Y9x?Ea+afoEx?rY)UQ$MXdzSIj(yL z%pC}3Hni*EjDAnlx!CJ0aB%?*(PnDRl&239BH~moJ$w1Z#Di|%my_7h9f$>IzAU;c zo_wbw>evPbk6OD<)Guw%MUrCb(in_?MBS9F2t%4rRv%=dy7+~5SLU_xw)eg%>B@mc zNdZ9z=@}Km2lJCLx7bQmtlSX-F&s?SBY2UOp z7|tLwhYwCJ8;dDzMja8o-N+}zo*1i8mwRzNH<9RpGPxVf+9B^=bn#K;oW)2_>``PU z)`t+_$)>s=yl*b5!YD33+IL1Iq2Zv}H4Hp?!wgY&`*(g2#)WSAyZ18tWnRw*O_{_6amqD((p>7r#T<#dWB7Q*o~%0Lcvx&@ zDxPPu)RbIAvYS3LVN0|>{_2tV0MGXjvj*V+t}FtV5vLoC=ec%S@ylP#dTkX6dt9dS zj)rRKHo7gdQJW44@!z9Y-HO<;?fbb>+5-E?b9xdV(47?!(!gXOVoMEMVl@r;3~0Cc zlD{oS_3KmmJGT3Lc$fZsK$w_ql{C#}8I#8rcdElnw@?X;GTGGU>7JjcCza+bi*)1i zq>4B~@|OdC0fH+b0LFoSu`Q=iedvhW_OX4b{yoPR6*af&4$T>EfeA@t{YYjFiyC*1 zXFtSO>`C{||75&l6;SwL#Msc;Ul<0MMuEUkaMcLy097Gbzw6!+aGQoMJ48C8T6m?6 ziY|P4U!rvptxQMY%l6psI)1MG+Vft!tpW{~-wQYtj<8{{e#@^S#+uH&7aC~NUeO?rC{UTf5Q^+5 z6Z_jnp*@U~GCE7C-;t(~VF5FF=THxy%oAQ{QY(=o#Mrb>TrGW1yk-qG zXCXM|ckB~mg+-CNT}AkzrPNw-Ho;=SAk58?NCO)+7@X>B7BBR@^{mR5dL=TU#wY7p zE?33ME0XUOcOK?;Qb<5#frQYN@8*ERT`$v=@YChqvbY18C3lMIYr!*`6}2IxVpWxI zsw{KG&7gt%o9iwlMM1(xwaXG5IOLbfb;5c&fUxdl;HI6yn-qse6cbn&m+%ULrM2aX)iH-TbCoOL&7B>xJPrQv|X#CN0JA z1Ib^qUB~*}hp7OWqQ%#@?w+dgIyvUMci8l7xR@s@o?UZ&qz{S_5$Wf4i5-3sC`5hh zwdu^=-qKdv``n`6E!q+Ii<-kUpW@vME}vR2RuQK#*x0acmq$T^dG4bEwR-wZA`yW< z$Z;@$z4awWg-bz(+q(B~6d<|t-zuLcM1eD6Kln`Pat(^k6tp+~89SX2P3H#1PulhF zi-Kjpr)H~&>-V2?`GA2>5e_iDO*Q?b=A`I8jAGa`$0o146tT@>s+NlgJjBmc%-{1R zz3m8>mR)Y|8%o@A-jUm54%AMX?xcbhtR^KwTYd#?OFQlD?T4zQ0aYcaeHzLz)=e$O z=nx4agK!19a;a+qktoEWQ)R~VAO*ycLA(_A4e(A zt^tSN1OM-3+Up?v-+g;>*7)qx!=EyA?5QZ210!C8m5(?;qQj3gFE7<$p@PwX7D*_P`TjsqYW*{13tXDCiVUyW+kmDIV;hB{4inS&BTb_7 zyk^id(L%a6s+=!K=`J|ug~=dkIbCD-@PmW@FF)Bx1@ppT?a%vv4LyO9lYby9s3@0=0pSwf7<>J0oAoPd(2RKnSgq)o1bx;;X`>IQv zalf7Rb*kP~ANR`+pm|`7P(%h1y0}=%HA{L2m$cTp;rR(jn-87wK!xxs7yeYv`>`K1 z|J*Hs@BfsfYA&He4QgPKtLYzwJ%BR7w=I#NuKexHP+Z~H6^aDfWf~Cfpu3LF6tfBV zK|VnZ9e7HI(n|Nr`isaQjtq)1-67KZL}zz$hq8F{Cy@!MmpZJ$IwJKt5^c?O@Me*b zN8Vo&ihW`-XVNW}+Zb(EX`OG^r7ZPNJwlF;G1z#_{e3j7=<-r?eRu0Z@2kdww6_vs zGGWNO1*_cRFZaGCq3&QoU;KhUyYs?Ug`qBXf?3Ocsq;79avLYfq6}Yp(rDxEOBk3l zT?dD1>7JcwxOj|-*x+mZ1zQEOP?&*S@fB|F%-D;}k6+p}izmxGcXf4k`P%g=CNr%$ zb~~y=rv64uNKBD5p-DSyq-43mX%+VW;c<3@#(d+a`$5p&TUai2{*9oj6hglX8Rp%C zk6)75HKGvud?Os-AAu_jA;uc7PFH=sEbqQ#Ie0}<8pEyb^M>7ba5AohL#fsP-e8vy zQ*0HvSgP*+Uk)ty*$3B;GXmFmxcC&eI_PY=^9;XA9OcJgp0 z@{&if&ONa(q!_dJ76D0Ymm&AzjKP*DOD z0ywu&>JzLH#8B?zZ*VxJ#g?j|Ll=fv+9vsO^YVrr`zd{M@25s*1y*)!`)8MKa#!=C zJpLhYIBG7~c%*wS-OF6O7Txq=$C-o%{iU>LdW=UDP;8|!_jc?p`C`kW1vYKRoO4_D z<|nojpWGJN5BM!E3`m7rCevPwT;7E7)fO3Z&m6co@j5S$0LV^2WX5M?^d9pa^DGG1 zXRoylVs;@;n}V`dX?-}QNgKH22Sl4_V&qUxx~ti=p3ID%xzpP?TnZ>LBso8Nd}%1_ zVqk-F*vE?(=h9CU2nZK0OkqA5`vur{BL9Dn7xR|vHLX=;{>KLaD^f(zP$_*()aV<8$~wj z@ehlUasd;@;6D3yxU3IUxZRUMr^bbiHE}pF`{8|qbTe$bsY4u>z_DO#up#2Q?T6IG z>N^SbO*Ug@ zy-@Ym4tp$5p-O(kp}L3-0~g%CUSP3D$WLrK&KOFMa2rIq@om#`8!&P+6jz+da`fl; z81-qiM)n}dN+gA=t`SQWN zxArTnh+lRYhPljL1#Kkb;}#QosJ=e!qwEs5<0b+W-ARZohtp^{(D!0Oq8IimH^-mw z(IF02brbd7Z5P^9hAVR>U2hJQBlhS^>ny0YbCR>#GLT?Y1?o2$ckb3qUrZ~D2O$?| zG8ayUW^#yt&H-OQZkG4msN*rG^wN9_zNCg$0mlE!TMn7wJRy z*)mQeW;e+B!^?bLBF8Y_uHOFZ~zf_R-2sGeS&IJXy z=yQ~H*fne0Z6HDudVmaX1Kz>GmDcXk_FUx$dqAlfs$_-xIYig3$oE z^eik8WZYvxsUCD=O!Hi1EJFhYveYrVbmzw23Of*$7u{o`%SFz}5oK~Vo^$cgcedk( z#h5sGKQ+5Oj~Jae&{pYsQ;3}NYH-@Qvc16d72UNPC{DRvCZwA3U+)HQsAVlGK5M*p z++Heuqc-T%=bQ>O!B0Wz6!Xv&{e9Az!850nFNd_z6tVU|?n?cWWArJ5JG#BIi$r}@_ljDo;4XLuRS?sGFy%_@d`OJ*?!NL%0$j#{&LZz%kGERG9+SJ5 zmxN^&8)URWYY!F!|-ysXX*~ zf#IN=z20CNGns1v!YUZ)mmPX1iEZ^W=Jf)swLd|SmC=nL1sF+K~ z6~`pBZ+?W7bIMrW#gG*4mcaX{HsdBkc)_A3+4yVMKJcEI&8R$d|FMsCXJAe)p?Eoe zvDY%&UR%7E{tLTPzx&Ce`i#w>wmq0dEk56MVaEAPLiOY`u~Y9{WG0zpu8jLmmNrbg(-tB;GZxwK*t zO>UdLswXO7ZXXu|SUOKZT|8!6rr_H|ilIl#^`_G~ihf~ls> z=Qp-rwjvI7e#$tGWK$O;~kFx)%j0GX_M`9E+>oc**;L>SKEnx(UckEE|otw z5HTEc9kh>e>2xA{AAz?K;b~;lrDie%?8un7D#G$&_cHzR3wkcZ(iDn?WdM%6cB5Sz zQib^Gc^i6HB8Ft=8`B{Ro_^_FlP+l&bEQ}riM2Z1RaoQDy1bARJ^WILzVdn{Qz5K| zc_BHh&Lv?Uyt4ipjb^=&(I6)*Y3G|QFphTLz>er}xNpbTo#8K(+B#^pn6L8_Z!n>= z7e)w!+B#CAydJ3g8B&NBiIq@q+A=vz$Y|(%L0Ik==_9D29G&ipRM!uJ=jx9^Ysn8CUldU+swpvpK6>9!JL#n7go?EhJx>+NWF+rEn0(7|73vmK?JRNP$Kr#8+k-x^?2D((?rX{U0(r@H%YZ z9DMWNGlE(-14ReJ&6!3m%VtiR%CagWQO(0s4g}AT!1yk5oviYp z--g)BZE3RUsYCIwwq3Kjgffe@1-A!FdqRs@K0P=eAO9TsvrouEYYI{VWw)si(DT@L zj&N%_7=?aOk_7blcQ!-ZL3oB7&7#=g^>@0mr8Bh4w&9~^dN%JnaL*y6zh*?6$$K{z zZNHbQ@yrAITWvA%bL`Sbtj=vr*zs}UW8ow=LI!C9gQL`zBW({({1pY}AmA^IEYfKk64A6@gc%%A8BH1inA@bU z#AehMD{aMzTVK%3MvpFPl{C0yjSX-du(AlB*6qT}1-f3|go2t_r{@Z&PGoIj^<4 z&?e4CvrgxIFh#0x9qKO0gJl_OUq5kb#NfKma%*9R@kITIr!~vM;lG36fqh0HqYJ={ zi*Jn}u`T`px<8bQGEuz+F2a~cnTzXGvz+7#M6^E3Cll1}7g8qYlz$OF1@#OTk~_ysG9ZrlfO~aKo3{Yd4Jl{tJ9}*c zcWE15d(>{nHnR_X@}2UYl2J2@l;$9+;|z}PWD^>;A|A{6_v?9_qVytsr&v}=1HRh1 z&kXKJSC3m&iLAa^m)o57l+X25huBSkR$dUvmah~~+=r!ZMj4jKMX52OH~8H%@I-BC z?d}2&r>QE>p_JS?t%wBR6u?)X>YQkJ$0?}aY=s1aNEb@cGrAtMJZzE`g-=Y0xD!Ph zq2|fvyI7ETb+|yNu}nNO8DNdO3@$gPL-Ww_(l|(qD$J4Lsh1oH(@{k)AyAGV{@{BrqvOpMhAGW)oz+^>FP=&Jh>nNGK-_wyxyWR4UE_T05Enzch)=} zH4J&iwLxo6!&stNccl-28`;|4Zqx4cP;TZ-LDCqF^u*nv*H{6Y2L5mG{$ZwQLju*e z-K4ZSn&332&IQI~-dPf$j`WT_Nnqkt`Xu+7L&pA+W}Sy<_b`HF-HQU^;7zo&2&E|T z{#@d<{p4pIw$1)rLh&5K#;RVM*CwU?pH&WR#(||8+{1aK5o$Q`xu$db)8S^Qf_w-i zWOiu-g=|_)Vj@=B?p4Eu~R_O6QWY368n?t_nbm&`gpKUv1ba9!OSdh35iIHi|0~Y2br{VwWM| zjZ`K;7siYIzB&|ju6Qw3Zkm;`A<&6zx-uQwyuQXc#$_%X0Z;SU|*hQO~Cu#@{ zmTJ(>kts?S|H|k9it@mKTaa|DHyh@wd<_-W-u3@}w`=<$e=&`-0!FlmK7C;tk#3i) zeIoXjoL-T*M5QR})rqYa&?0?aLspbIu8c{7$LLnta>*_<%qXm=N zk z(_KeR8@;8!9uPSO4jxci3WCDPMH{vq?hNn*(~8 zH>8F&>XKo?^8hz}NzkmsYxOu)wyw8xl)?eU?4k4EJ*49|56!zeb53uNB(TQz^VzdjiBGU^eQw8kcfj?>z$p8*|RBb&~oPA9yn_dr)Yu7C4yOl(k=vy zX0YROy_0#_zut3Qf&|11r2_ zBMn;cwYl3T^%9|FmE4|UDQ!1&bs7TIk1U8~G}0Me4xEz@F65i|zTQTN1^u?rmb2|x z=>%RO-Tvc@VHLZK8(JV33?S-R?E!9d6Ydf%jxr=*1RBj62--LcxIP@zVat zW7;@vsJdjhYaPErAOfS{)Bea!5bNf3!fPndOE6Dn{Bv6|J9?kQW*`7LN5j}IqVL`j&xjyHM^5bmZsB- zO!(5!Q}0u8kVk)IBq2==#oOO-#hMrbg~#$~Fn?lfS1a6{Z^BpE134zK^&*)g{N6pi zD*wg+*O8HttDv3G+~pzQ$C`-mpGSqB9e4uXYOD=PLF_h-*VGyTP>8w3k2`BJtWl=H z*EpBkZl0nPBR#t6vDpag1~(_D_3`mQOgtv?&VKS0gnef}N ztWAF`uUkuCG2*TPsOx2dVFWNTHtDJZRHimR{tzPPobst|cnhgY!tL$>smCW2iI>&;p=k0L@r#Dbno@82=~uK)Lb|EHR8yjYB= zRU8BjGgSdg0jy375QtEX_mK{DL8J}nZ-M~3AUo8M|E+xkR`;K(y#8W9ArV5jAiDEE z&W)yqm}Q{N0yu#N6~BrCa0qPH&6p{=7T~gZ6Dz^9U*$Pe@Bf!=2Z-YTgySC+(OQDy ze-L8$KS=Bs;^%+Rx>9BfDO}C}YOwf!kl6om8EaieUZ30>@H&j)DrwNQlW5UY_4%#$ zugyFD1yk>j4j*jwS3a?4g%V1AJj9Q|R)_F*W&?sjz)Gr@eLaTh2e`RpQv$fGWYGVg zBi+j9Qy*Ch=}v?0W7jg1gt<&>O3fZYb=5{d+jQ_G4aa66>CP|+tW!C zzaej&`tn~u7~#U}ul#X}ckK?TMFgj$F z_7T;><;Wy~FIhthJ;nQBp!3$V+j~#v5-Hi{mE0$ClSXHVt-7t_ao5D! zZ5|(8Hm_p7BY`cegF1AhO-Pnv^|fZ&_{O+Rzx44~i>q=wG}r~V_{De~_?Y)du)JF| zSNS?D(yZjwo!SQG`jA+T*DXwHPZek`3tQ*~A z8}+8zn1%|rS;&mHZB#aebm{2DOtVW4nl@_FF%Dr@Li)=OBy}>>xYfH^Jb3rVy(k(4 z%1`j4BOjPwr(G^l*Si7_OvJ$2KN!8XUoWEPS z`7Ru$vJ<@>uI8*_K?+%ncN=T-tKM(+Fd}pZqF$;Ye6h?cMBH|)VV~0a+xzPgJQ6JN zWo!?^&Rv!@3hBjkX8BS49*p8$_J@=5S30bEwq=<-)Gvxk-{iqUKIUXR^@6Y}=`DES2H|&?qR#f)h&5wG2 z^_}Fis!r8s?V7;EJO`ZSV9m)rHqny~K+kgkF4kBXpK*LS`h=6l*`J?I>o50smyq@$ z=%&Gun(m1C70dGEq{MgLeJ{vv%%cDKqR7cIYf!HA_+S+9;nJ^f`(=G@rCyye+2i^3 zcb*J_LVMl-$Mkb;S#wWqx>2yC`G}o@3uA5mhe_`)2Jz3`o0#&V@OD7aHqD){tQKyG z3IR@Wf!CXZr`q&Pjexl_y25;J?BUsm!n=~AHQdin=ZxFJ;WsbGN!@aHtMHyP8*Sx) z3nvBMhtCOE2HZWG_%g@;)!Tb9Y*T<|qiwkpZPh%zMLH!HUjcEqMC{bs2TL`R?k;r! z_K5XcGkoWZ+zND@Ti^k<2AIvKTW&kvbFlkv`Jbh3_m1zgXW@urJC?iO=|)@b?2VVa zdxhlQ2!EbPARpY7c4gO$vEH3)uHJt+soE-W-R#%5;+HM(nAZ==X{TjwC!c$;w04q} z?X;^^JL1$9HSv8F6L{@Rxjdf$KI8 zb*9Jocqgu2?=5=JNbh6r65eX~Ktv9*feuIO7-n&Fy=j`ql2EUH13MEzDQ&+gLfX&HS>GW$AtK2vJb+IGs67 zD&SYZW@C;fKf>kY=cN6mbNFKI-FdyijUhZJiur@@Qf?9@ADXz7Jj`N9zOr~o#&fa^?^a8ha-r9TSn%bE8%Vj*8bZI zpvMGIu}71*i(u3I8ELa;jnF^C&D>$7NhjN?R} zZ0BGVP_qzxrUX)*18H^zfm%n9wjXei;#0xOiNMCu-9x|@&rRJqATR5gG7b7h7que@ zIAI2A`5d+amtvsP3h15L?oATsbnlm23taOK+}F1+QofyE9%U&Bux1A?2w99=u1tWg z?0_6tf~Q0QE)%%{Tv;mb4NPd->vjMKv6gb^ch1h=ce7X8+Je6s)FOyy720#-dz2_> zbgf-+`Db`jRh!sSzg(px;kv91aB?qC* zsKYj)pe*r#ZB2Q4a}tXie9p<^uamXiQQ)b0w%~QINRf)@`k{t2c;E+qW(a(}7ozI~ z8VUlQE`@YDAG#cDaWdH(C LS3j3^P6l#9TAd@%9` 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 dcd@=heuJroQyKcrd>-3 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 LS3j3^P6 Date: Mon, 11 Aug 2025 13:06:19 +0200 Subject: [PATCH 2/7] Made first test and created all classes and their signature. A couple methods in some as well --- src/main/img_1.png | Bin 52018 -> 0 bytes src/main/java/com/booleanuk/core/Bagel.java | 8 +++++ src/main/java/com/booleanuk/core/Basket.java | 26 ++++++++++++++ src/main/java/com/booleanuk/core/Coffee.java | 8 +++++ .../java/com/booleanuk/core/Fillings.java | 8 +++++ .../java/com/booleanuk/core/Inventory.java | 8 +++++ src/main/java/com/booleanuk/core/Item.java | 32 ++++++++++++++++++ .../com/booleanuk/core/BobsBagelTest.java | 17 ++++++++++ 8 files changed, 107 insertions(+) delete mode 100644 src/main/img_1.png create mode 100644 src/main/java/com/booleanuk/core/Bagel.java create mode 100644 src/main/java/com/booleanuk/core/Basket.java create mode 100644 src/main/java/com/booleanuk/core/Coffee.java create mode 100644 src/main/java/com/booleanuk/core/Fillings.java create mode 100644 src/main/java/com/booleanuk/core/Inventory.java create mode 100644 src/main/java/com/booleanuk/core/Item.java create mode 100644 src/test/java/com/booleanuk/core/BobsBagelTest.java diff --git a/src/main/img_1.png b/src/main/img_1.png deleted file mode 100644 index 9504be64e86e80d465d5768e90517b025206c972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52018 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 dcd@=heuJroQyKcrd>-3 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 LS3j3^P6 Date: Tue, 12 Aug 2025 09:20:41 +0200 Subject: [PATCH 3/7] All test added and signature of all classes made. Changes made to class diagram and domain model --- src/main/domain-model.md | 135 +++++++++--------- src/main/img.png | Bin 52018 -> 0 bytes src/main/img_1.png | Bin 0 -> 80183 bytes src/main/java/com/booleanuk/core/Bagel.java | 27 +++- src/main/java/com/booleanuk/core/Basket.java | 31 +++- src/main/java/com/booleanuk/core/Coffee.java | 6 +- .../java/com/booleanuk/core/Customer.java | 29 ++++ .../java/com/booleanuk/core/Fillings.java | 6 +- .../java/com/booleanuk/core/Inventory.java | 30 +++- src/main/java/com/booleanuk/core/Item.java | 8 +- src/main/java/com/booleanuk/core/Manager.java | 33 +++++ .../com/booleanuk/core/MemberOfPublic.java | 16 +++ src/main/java/com/booleanuk/core/User.java | 32 +++++ .../com/booleanuk/core/BobsBagelTest.java | 115 ++++++++++++++- 14 files changed, 382 insertions(+), 86 deletions(-) delete mode 100644 src/main/img.png create mode 100644 src/main/img_1.png create mode 100644 src/main/java/com/booleanuk/core/Customer.java create mode 100644 src/main/java/com/booleanuk/core/Manager.java create mode 100644 src/main/java/com/booleanuk/core/MemberOfPublic.java create mode 100644 src/main/java/com/booleanuk/core/User.java diff --git a/src/main/domain-model.md b/src/main/domain-model.md index 2a99bb388..449b13f76 100644 --- a/src/main/domain-model.md +++ b/src/main/domain-model.md @@ -1,74 +1,64 @@ # Bobs bagel ---- -As a member of the public,\ -So I can order a bagel before work,\ -I'd like to add a specific type of bagel to my basket. ---- -As a member of the public,\ -So I can change my order,\ -I'd like to remove a bagel from my basket. ---- -As a member of the public,\ -So that I can not overfill my small bagel basket\ -I'd like to know when my basket is full when I try adding an item beyond my basket capacity. ---- -As a Bob's Bagels manager,\ -So that I can expand my business,\ -I’d like to change the capacity of baskets. ---- -As a member of the public\ -So that I can maintain my sanity\ -I'd like to know if I try to remove an item that doesn't exist in my basket. ---- -As a customer,\ -So I know how much money I need,\ -I'd like to know the total cost of items in my basket. ---- -As a customer,\ -So I know what the damage will be,\ -I'd like to know the cost of a bagel before I add it to my basket. ---- -As a customer,\ -So I can shake things up a bit,\ -I'd like to be able to choose fillings for my bagel. ---- -As a customer,\ -So I don't over-spend,\ -I'd like to know the cost of each filling before I add it to my bagel order. ---- -As the manager,\ -So we don't get any weird requests,\ -I want customers to only be able to order things that we stock in our inventory. ---- - ## Classdiagram ![img_1.png](img_1.png) ## Basket -| Classes | Members | Methods | Scenario | Output | -|---------|---------------|---------------|-------------------|------------------| -| Basket | List\ | | | | -| | capacity: int | | | | -| | | getAllItems() | at least one item | return all items | -| | | | empty | return nothing | +| Classes | Members | Methods | Scenario | Output | +|---------|-----------------------------|-------------------------------|--------------------------|-------------------------------| +| Basket | customerBasket: List\ | | | | +| | capacity: int | | | | +| | | getAllItems() | at least one item | return all items | +| | | | empty | return nothing | +| | | getCap() | | return capacity | +| | | setCapacity(int newCap) | newCap > capacity | change capacity | +| | | | newCap <= capacity | do not change capacity | +| | | isFull() | basket is full | return true | +| | | | basket is not full | return false | +| | | getRemainingCapacity() | | return capacity - basket.size() | +| | | addItem(Item item, Inventory) | item is in inventory | add to basket | +| | | | item is not in inventory | do not add to basket | +| | | | basket is full | do not add to basket | +| | | removeItem(Item item) | item is in basket | remove from basket | +| | | | item is not in basket | do nothing | +| | | | basket is empty | do nothing | +| | | calculateTotalCost() | basket is empty | return 0 | +| | | | basket is not empty | calculate cost and return | + +## User +| Classes | Members | Methods | Scenario | Output | +|---------|------------------|-------------------------------------------------|----------------------------------|------------------------------| +| User | name: String | | | | +| | DEFAULT_CAP: int | | | | +| | basket: Basket | | | | +| | | getName() | name given | return name | +| | | | no name given | returns no name | +| | | getBasket() | empty basket | no basket returned | +| | | | basket has at least one item | return basket with items | +| | | addItemToBasket(Item item, Inventory inventory) | item exists in inventory | add item to basket | +| | | | item does not exist in inventory | item is not added to basket | +| | | | basket is full | item is not added to basket | +| | | removeItemFromBasket(Item item) | item exists in basket | remove said item from basket | +| | | | item does not exist in basket | item is not removed | +| | | | basket is empty | nothing is done | ## Manager -| Classes | Member | Methods | Scenario | Output | -|---------|------------------------|-----------------------------------------------------|------------------------------|------------------------------------------------| -| Manager | name: String | | | | -| | List\ Inventory | | | | -| | | changeCapacity(Basket basket, int capacity) | capacity > oldCapacity | change capacity to new capacity | -| | | | capacity <= oldCapacity | return message to show new capacity is too low | -| | | onlyOrderFillingsInInventory(List\ fillings) | fillings is in inventory | make bagel and serve customer | -| | | | fillings is not in inventory | tell customer that filling is not available | +### Does everything a User can do, but also has some extra accesses as shown below +| Classes | Member | Methods | Scenario | Output | +|---------|---------------------|------------------------------|------------------------------|------------------------------------------------| +| Manager | name: String | | | | +| | Inventory inventory | | | | +| | | changeCapacity(int capacity) | capacity > oldCapacity | change capacity to new capacity | +| | | | capacity <= oldCapacity | return message to show new capacity is too low | +| | | isInInventory(Item item) | fillings is in inventory | make bagel and serve customer | +| | | | fillings is not in inventory | tell customer that filling is not available | ## Customer +### Does everything a User can do, but also has some extra accesses as shown below | Classes | Member | Methods | Scenario | Output | |----------|----------------|--------------------------------------------------------|-----------------------------|------------------------------------------------| | Customer | name:String | | | | -| | basket: Basket | | | | | | | totalCostOfBasket(Basket basket) | emptyBasket | show 0 | | | | | at least one item in basket | calculate cost | | | | showCostBeforeAdding(Items item (bagels and fillings)) | valid item | show cost | @@ -78,16 +68,17 @@ I want customers to only be able to order things that we stock in our inventory. ## MemberPublic -| Classes | Member | Methods | Scenario | Output | -|--------------|----------------|------------------------|-------------------------------|---------------------------------------------------------| -| MemberPublic | name: String | | | | -| | basket: Basket | | | | -| | | addBagel(Items item) | basket not full | add bagel to basket | -| | | | basket full | not able to add, show user message that basket is full | -| | | removeItem(Items item) | basket empty | not able to remove anything | -| | | | basket not empty | able to remove said bagel | -| | | | item does not exist in basket | show message that item does not exist | - +### Does everything a User can do, has no extra accesses +| Classes | Member | Methods | Scenario | Output | +|--------------|----------------|-------------------------------------------------|----------------------------------|------------------------------| +| MemberPublic | name: String | | | | +| | basket: Basket | | | | +| | | addItemToBasket(Item item, Inventory inventory) | item exists in inventory | add item to basket | +| | | | item does not exist in inventory | item is not added to basket | +| | | | basket is full | item is not added to basket | +| | | removeItemFromBasket(Item item) | item exists in basket | remove said item from basket | +| | | | item does not exist in basket | item is not removed | +| | | | basket is empty | nothing is done | ## Items | Classes | Member | Methods | Scenario | Output | @@ -105,5 +96,13 @@ I want customers to only be able to order things that we stock in our inventory. | | | getVariant() | variant available | return variant | | | | | variant not available | return nothing | - +## Inventory +| Classes | Member | Methods | Scenario | Output | +|-----------|------------------------|---------------------------|----------------------------------|------------------| +| Inventory | | | | | +| | inventory: List\ | | | | +| | | isInInventory(String sku) | item exists in inventory | return true | +| | | | item does not exist in inventory | return false | +| | | getItem(String sku) | item is in inventory | return said item | +| | | | item is not in inventory | return null | diff --git a/src/main/img.png b/src/main/img.png deleted file mode 100644 index 9504be64e86e80d465d5768e90517b025206c972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52018 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 dcd@=heuJroQyKcrd>-3 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 LS3j3^P66sK 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 literal 0 HcmV?d00001 diff --git a/src/main/java/com/booleanuk/core/Bagel.java b/src/main/java/com/booleanuk/core/Bagel.java index 81e792d30..2f5c18edc 100644 --- a/src/main/java/com/booleanuk/core/Bagel.java +++ b/src/main/java/com/booleanuk/core/Bagel.java @@ -1,8 +1,31 @@ package com.booleanuk.core; -public class Bagel{ +import java.util.ArrayList; +import java.util.List; - public Bagel() { +public class Bagel extends Item{ + private List fillings; + Inventory inventory = new Inventory(); + + public Bagel(String SKU, double price, String name, String variant) { + super(SKU, price, name, variant); + this.fillings = new ArrayList<>(); + } + + public void addFillings(Fillings filling) { + ; + } + + public boolean removeFillings(Fillings filling) { + return true; + } + + public List getFillings() { + return fillings; + } + + public double getBagelPrice() { + return 0.0; } } diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index 72142facf..d840906cb 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -1,26 +1,51 @@ package com.booleanuk.core; +import java.util.ArrayList; +import java.util.List; + public class Basket { private int capacity; + private List customerBasket; public Basket(int capacity) { this.capacity = capacity; + this.customerBasket = new ArrayList<>(); } public int getCapacity() { - return 0; + return capacity; } public void setCapacity(int newCapacity) { - + ; } public boolean isFull() { - return true; + return false; } public int getRemainingCapacity() { return 0; } + + public boolean addItem(Item item, Inventory inventory) { + return false; + } + + public boolean removeItem(Item item) { + return false; + } + + public double calculateTotalCost() { + return 0.0; + } + + public boolean containsItem(Item item) { + return false; + } + + public void clearBasket() { + customerBasket.clear(); + } } diff --git a/src/main/java/com/booleanuk/core/Coffee.java b/src/main/java/com/booleanuk/core/Coffee.java index 30ec47431..be3f26f6d 100644 --- a/src/main/java/com/booleanuk/core/Coffee.java +++ b/src/main/java/com/booleanuk/core/Coffee.java @@ -1,8 +1,8 @@ package com.booleanuk.core; -public class Coffee { - - public Coffee() { +public class Coffee extends Item { + public Coffee(String SKU, double price, String name, String variant) { + super(SKU, price, name, variant); } } diff --git a/src/main/java/com/booleanuk/core/Customer.java b/src/main/java/com/booleanuk/core/Customer.java new file mode 100644 index 000000000..9a0b06b2b --- /dev/null +++ b/src/main/java/com/booleanuk/core/Customer.java @@ -0,0 +1,29 @@ +package com.booleanuk.core; + +public class Customer extends User{ + + private String name; + private Basket basket; + + public Customer(String name) { + super(name); + } + + public String getName() { + return name; + } + + public boolean addItemToBasket(Item item, Inventory inventory) { + return true; + } + + public boolean removeItemFromBasket(Item item) { + return true; + } + + public double viewTotalCost() { + return 0.0; + } +} + + diff --git a/src/main/java/com/booleanuk/core/Fillings.java b/src/main/java/com/booleanuk/core/Fillings.java index d11f28295..529cf1a80 100644 --- a/src/main/java/com/booleanuk/core/Fillings.java +++ b/src/main/java/com/booleanuk/core/Fillings.java @@ -1,8 +1,8 @@ package com.booleanuk.core; -public class Fillings{ - - public Fillings() { +public class Fillings extends Item{ + public Fillings(String SKU, double price, String name, String variant) { + super(SKU, price, name, variant); } } diff --git a/src/main/java/com/booleanuk/core/Inventory.java b/src/main/java/com/booleanuk/core/Inventory.java index de587609f..5d9181ec9 100644 --- a/src/main/java/com/booleanuk/core/Inventory.java +++ b/src/main/java/com/booleanuk/core/Inventory.java @@ -1,8 +1,36 @@ package com.booleanuk.core; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +import static java.lang.System.in; + public class Inventory { - public Inventory() { + private List inventory = new ArrayList<>(Arrays.asList( + new Bagel("BGLO", 0.49, "Bagel", "Onion" ), + new Bagel("BGLP", 0.39, "Bagel", "Plain"), + new Bagel("BGLE", 0.49, "Bagel", "Everything"), + new Bagel("BGLS", 0.49, "Bagel", "Sesame"), + new Coffee("COFB", 0.99, "Coffee", "Black"), + new Coffee("COFW", 1.19, "Coffee", "White"), + new Coffee("COFC", 1.29, "Coffee", "Cappuccino"), + new Coffee("COFL", 1.29, "Coffee", "Latte"), + new Fillings("FILB", 0.12, "Filling", "Bacon"), + new Fillings("FILE", 0.12, "Filling", "Egg"), + new Fillings("FILC", 0.12, "Filling", "Cheese"), + new Fillings("FILX", 0.12, "Filling", "Cream Cheese"), + new Fillings("FILS", 0.12, "Filling", "Smoked salmon"), + new Fillings("FILH", 0.12, "Filling", "Ham") + )); + + public boolean isInInventory(String sku) { + return false; + } + public Item getItem(String sku) { + return null; } } diff --git a/src/main/java/com/booleanuk/core/Item.java b/src/main/java/com/booleanuk/core/Item.java index ce061911d..2680d0d50 100644 --- a/src/main/java/com/booleanuk/core/Item.java +++ b/src/main/java/com/booleanuk/core/Item.java @@ -1,13 +1,13 @@ package com.booleanuk.core; -public abstract class Item { +public class Item { protected String SKU; - protected int price; + protected double price; protected String name; protected String variant; - public Item(String SKU, int price, String name, String variant) { + public Item(String SKU, double price, String name, String variant) { this.SKU = SKU; this.price = price; this.name = name; @@ -22,7 +22,7 @@ public String getName() { return name; } - public int getPrice() { + public double getPrice() { return price; } diff --git a/src/main/java/com/booleanuk/core/Manager.java b/src/main/java/com/booleanuk/core/Manager.java new file mode 100644 index 000000000..14c09545c --- /dev/null +++ b/src/main/java/com/booleanuk/core/Manager.java @@ -0,0 +1,33 @@ +package com.booleanuk.core; + +public class Manager extends User { + + private String name; + private Inventory inventory; + private Basket basket; + + public Manager(String name) { + super(name); + this.inventory = new Inventory(); + } + + public String getName() { + return name; + } + + public boolean isInInventory(Item item) { + return true; + } + + public boolean addToInventory(Item item) { + return true; + } + + public boolean removeFromInventory(Item item) { + return true; + } + + public void changeCapacityOfBaskets(int newCap) { + ; + } +} diff --git a/src/main/java/com/booleanuk/core/MemberOfPublic.java b/src/main/java/com/booleanuk/core/MemberOfPublic.java new file mode 100644 index 000000000..6b7d18623 --- /dev/null +++ b/src/main/java/com/booleanuk/core/MemberOfPublic.java @@ -0,0 +1,16 @@ +package com.booleanuk.core; + +public class MemberOfPublic extends User { + + private String name; + private Basket basket; + + public MemberOfPublic(String name) { + super(name); + } + + public String getName() { + return name; + } +} + diff --git a/src/main/java/com/booleanuk/core/User.java b/src/main/java/com/booleanuk/core/User.java new file mode 100644 index 000000000..8c3e345f2 --- /dev/null +++ b/src/main/java/com/booleanuk/core/User.java @@ -0,0 +1,32 @@ +package com.booleanuk.core; + +public abstract class User { + protected String name; + protected Basket basket; + protected int DEFAULT_CAPACITY = 5; + + public User(String name) { + this.name = name; + this.basket = new Basket(DEFAULT_CAPACITY); + } + + public String getName() { + return name; + } + + public Basket getBasket() { + return basket; + } + + public boolean addItemToBasket(Item item, Inventory inventory) { + return true; + } + + public boolean removeItemFromBasket(Item item) { + return true; + } + + public boolean isBasketFull() { + return true; + } +} diff --git a/src/test/java/com/booleanuk/core/BobsBagelTest.java b/src/test/java/com/booleanuk/core/BobsBagelTest.java index 2e623d20a..1412db8b4 100644 --- a/src/test/java/com/booleanuk/core/BobsBagelTest.java +++ b/src/test/java/com/booleanuk/core/BobsBagelTest.java @@ -6,7 +6,7 @@ public class BobsBagelTest { @Test - public void testSetCapacity() { + public void testChangeCapacity() { Basket basket = new Basket(10); basket.setCapacity(11); @@ -14,4 +14,115 @@ public void testSetCapacity() { Assertions.assertEquals(11, basket.getRemainingCapacity()); Assertions.assertEquals(false, basket.isFull()); } -} + + @Test + public void testAddingItemToBasket() { + Basket basket = new Basket(10); + Inventory inventory = new Inventory(); + Item item = inventory.getItem("BGLO"); + + Assertions.assertEquals(true, basket.addItem(item, inventory)); + } + + // look over + @Test + public void testRemovingItemFromBasket() { + Basket basket = new Basket(10); + Inventory inventory = new Inventory(); + Item item1 = inventory.getItem("BGLO"); + Item item2 = inventory.getItem("BGLP"); + basket.addItem(item1, inventory); + basket.addItem(item2, inventory); + + Assertions.assertEquals(true, basket.removeItem(item1)); + Assertions.assertEquals(false, basket.containsItem(item1)); + Assertions.assertEquals(true, basket.containsItem(item2)); + } + + @Test + public void testAddingIfBasketFull() { + Basket basket = new Basket(1); + Inventory inventory = new Inventory(); + Item item1 = inventory.getItem("BGLO"); + Item item2 = inventory.getItem("BGLP"); + basket.addItem(item1, inventory); + + Assertions.assertEquals(false, basket.addItem(item2, inventory)); + } + + // look over + @Test + public void testRemovingIfItemDontExistOrBasketEmpty() { + Basket basket = new Basket(10); + Inventory inventory = new Inventory(); + Item item = inventory.getItem("BGLO"); + + Assertions.assertEquals(false, basket.removeItem(item)); + } + + @Test + public void testTotalCostOfItemsInBasket() { + Basket basket = new Basket(3); + Inventory inventory = new Inventory(); + Item item1 = inventory.getItem("BGLO"); + Item item2 = inventory.getItem("FILB"); + Item item3 = inventory.getItem("COFB"); + + basket.addItem(item1, inventory); + basket.addItem(item2, inventory); + basket.addItem(item3, inventory); + + double totalCost = basket.calculateTotalCost(); + Assertions.assertEquals(1.60, totalCost); + } + + @Test + public void testGetCostOfOneItem() { + Basket basket = new Basket(2); + Inventory inventory = new Inventory(); + Item item1 = inventory.getItem("FILX"); + + Assertions.assertEquals(0.12, item1.getPrice()); + } + + @Test + public void testChoseFillings() { + Inventory inventory = new Inventory(); + Bagel bagel = (Bagel) inventory.getItem("BGLO"); + Fillings bacon = (Fillings) inventory.getItem("FILB"); + + bagel.addFillings(bacon); + + Assertions.assertEquals(true, bagel.getFillings().contains(bacon)); + Assertions.assertEquals(0.61, bagel.getPrice(), 0.01); // 0.49 + 0.12 + } + + @Test + public void testOnlyOrderThingsInInventory() { + Inventory inventory = new Inventory(); + Customer customer = new Customer("Alice"); + + Bagel fakeBagel = new Bagel("XXXX", 9.99, "Fake", "Invalid"); + + boolean result = customer.addItemToBasket(fakeBagel, inventory); + Assertions.assertEquals(false, result); + } + + // look over + @Test + public void testManagerChangeCapacityOfBaskets() { + Manager manager = new Manager("Bob"); + Basket basket = new Basket(2); + manager.changeCapacityOfBaskets(10); + + Assertions.assertEquals(10, basket.getCapacity()); + } + + @Test + public void testCustomerViewPriceBeforeAdding() { + Inventory inventory = new Inventory(); + Item item = inventory.getItem("BGLP"); + + Assertions.assertEquals(0.39, item.getPrice(), 0.01); + } +} \ No newline at end of file From a6ecc8cd0b6e0ae9990a0047abf8f4c5e81778ad Mon Sep 17 00:00:00 2001 From: Moueed Ali Date: Tue, 12 Aug 2025 11:19:10 +0200 Subject: [PATCH 4/7] Completed code for all test to pass. Will look over and refactor code and add some tests later --- src/main/java/com/booleanuk/core/Bagel.java | 24 ++++++++---- src/main/java/com/booleanuk/core/Basket.java | 39 +++++++++++++------ .../java/com/booleanuk/core/Customer.java | 7 ++-- .../java/com/booleanuk/core/Inventory.java | 10 +++++ src/main/java/com/booleanuk/core/Manager.java | 3 +- src/main/java/com/booleanuk/core/User.java | 10 ++--- .../com/booleanuk/core/BobsBagelTest.java | 25 ++++++------ 7 files changed, 76 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Bagel.java b/src/main/java/com/booleanuk/core/Bagel.java index 2f5c18edc..097c9e19c 100644 --- a/src/main/java/com/booleanuk/core/Bagel.java +++ b/src/main/java/com/booleanuk/core/Bagel.java @@ -5,20 +5,24 @@ public class Bagel extends Item{ - private List fillings; - Inventory inventory = new Inventory(); + private List fillings = new ArrayList<>(); public Bagel(String SKU, double price, String name, String variant) { super(SKU, price, name, variant); - this.fillings = new ArrayList<>(); } public void addFillings(Fillings filling) { - ; + fillings.add(filling); } - public boolean removeFillings(Fillings filling) { - return true; + public boolean removeFillings(Fillings filling, Inventory inventory) { + if(fillings.isEmpty() || !fillings.contains(filling) || !inventory.isInInventory(filling.getSKU())) { + return false; + } + else { + fillings.remove(filling); + return true; + } } public List getFillings() { @@ -26,6 +30,12 @@ public List getFillings() { } public double getBagelPrice() { - return 0.0; + double totPrice = 0; + for (Fillings f: fillings) { + totPrice += f.getPrice(); + } + + totPrice += this.getPrice(); + return totPrice; } } diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index d840906cb..ae730313c 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -5,44 +5,61 @@ public class Basket { - private int capacity; + private int MAX_CAPACITY = 10; private List customerBasket; - public Basket(int capacity) { - this.capacity = capacity; + public Basket() { this.customerBasket = new ArrayList<>(); } public int getCapacity() { - return capacity; + return MAX_CAPACITY; } public void setCapacity(int newCapacity) { - ; + this.MAX_CAPACITY = newCapacity; } public boolean isFull() { - return false; + return this.MAX_CAPACITY == customerBasket.size(); } public int getRemainingCapacity() { - return 0; + return MAX_CAPACITY - customerBasket.size(); } public boolean addItem(Item item, Inventory inventory) { - return false; + if (isFull() || !inventory.isInInventory(item.SKU)) { + return false; + } + else { + customerBasket.add(item); + } + return true; } public boolean removeItem(Item item) { - return false; + if (customerBasket.isEmpty() || !customerBasket.contains(item)) { + return false; + } + else { + customerBasket.remove(item); + return true; + } } public double calculateTotalCost() { - return 0.0; + double totalcost = 0; + + for (Item i : customerBasket) { + totalcost += i.price; + } + + return totalcost; } public boolean containsItem(Item item) { - return false; + return customerBasket.contains(item); } public void clearBasket() { diff --git a/src/main/java/com/booleanuk/core/Customer.java b/src/main/java/com/booleanuk/core/Customer.java index 9a0b06b2b..6af69e2fc 100644 --- a/src/main/java/com/booleanuk/core/Customer.java +++ b/src/main/java/com/booleanuk/core/Customer.java @@ -3,7 +3,6 @@ public class Customer extends User{ private String name; - private Basket basket; public Customer(String name) { super(name); @@ -14,15 +13,15 @@ public String getName() { } public boolean addItemToBasket(Item item, Inventory inventory) { - return true; + return basket.addItem(item, inventory); } public boolean removeItemFromBasket(Item item) { - return true; + return basket.removeItem(item); } public double viewTotalCost() { - return 0.0; + return basket.calculateTotalCost(); } } diff --git a/src/main/java/com/booleanuk/core/Inventory.java b/src/main/java/com/booleanuk/core/Inventory.java index 5d9181ec9..a74a44ed2 100644 --- a/src/main/java/com/booleanuk/core/Inventory.java +++ b/src/main/java/com/booleanuk/core/Inventory.java @@ -27,10 +27,20 @@ public class Inventory { )); public boolean isInInventory(String sku) { + for (Item i: inventory) { + if (Objects.equals(i.SKU, sku)) { + return true; + } + } return false; } public Item getItem(String sku) { + for (Item i: inventory) { + if (Objects.equals(i.SKU, sku)) { + return i; + } + } return null; } } diff --git a/src/main/java/com/booleanuk/core/Manager.java b/src/main/java/com/booleanuk/core/Manager.java index 14c09545c..f92290781 100644 --- a/src/main/java/com/booleanuk/core/Manager.java +++ b/src/main/java/com/booleanuk/core/Manager.java @@ -4,7 +4,6 @@ public class Manager extends User { private String name; private Inventory inventory; - private Basket basket; public Manager(String name) { super(name); @@ -30,4 +29,4 @@ public boolean removeFromInventory(Item item) { public void changeCapacityOfBaskets(int newCap) { ; } -} +} \ No newline at end of file diff --git a/src/main/java/com/booleanuk/core/User.java b/src/main/java/com/booleanuk/core/User.java index 8c3e345f2..26650df8e 100644 --- a/src/main/java/com/booleanuk/core/User.java +++ b/src/main/java/com/booleanuk/core/User.java @@ -2,12 +2,10 @@ public abstract class User { protected String name; - protected Basket basket; - protected int DEFAULT_CAPACITY = 5; + protected Basket basket = new Basket(); public User(String name) { this.name = name; - this.basket = new Basket(DEFAULT_CAPACITY); } public String getName() { @@ -19,14 +17,14 @@ public Basket getBasket() { } public boolean addItemToBasket(Item item, Inventory inventory) { - return true; + return basket.addItem(item, inventory); } public boolean removeItemFromBasket(Item item) { - return true; + return basket.removeItem(item); } public boolean isBasketFull() { - return true; + return basket.isFull(); } } diff --git a/src/test/java/com/booleanuk/core/BobsBagelTest.java b/src/test/java/com/booleanuk/core/BobsBagelTest.java index 1412db8b4..0c0c6cdc8 100644 --- a/src/test/java/com/booleanuk/core/BobsBagelTest.java +++ b/src/test/java/com/booleanuk/core/BobsBagelTest.java @@ -7,7 +7,7 @@ public class BobsBagelTest { @Test public void testChangeCapacity() { - Basket basket = new Basket(10); + Basket basket = new Basket(); basket.setCapacity(11); Assertions.assertEquals(11, basket.getCapacity()); @@ -17,9 +17,9 @@ public void testChangeCapacity() { @Test public void testAddingItemToBasket() { - Basket basket = new Basket(10); + Basket basket = new Basket(); Inventory inventory = new Inventory(); - Item item = inventory.getItem("BGLO"); + Item item = inventory.getItem("BGLP"); Assertions.assertEquals(true, basket.addItem(item, inventory)); } @@ -27,7 +27,7 @@ public void testAddingItemToBasket() { // look over @Test public void testRemovingItemFromBasket() { - Basket basket = new Basket(10); + Basket basket = new Basket(); Inventory inventory = new Inventory(); Item item1 = inventory.getItem("BGLO"); Item item2 = inventory.getItem("BGLP"); @@ -41,19 +41,20 @@ public void testRemovingItemFromBasket() { @Test public void testAddingIfBasketFull() { - Basket basket = new Basket(1); + Basket basket = new Basket(); Inventory inventory = new Inventory(); Item item1 = inventory.getItem("BGLO"); Item item2 = inventory.getItem("BGLP"); basket.addItem(item1, inventory); - Assertions.assertEquals(false, basket.addItem(item2, inventory)); + Assertions.assertEquals(true, basket.addItem(item2, inventory)); + Assertions.assertEquals(true, basket.containsItem(item1)); } // look over @Test public void testRemovingIfItemDontExistOrBasketEmpty() { - Basket basket = new Basket(10); + Basket basket = new Basket(); Inventory inventory = new Inventory(); Item item = inventory.getItem("BGLO"); @@ -62,7 +63,7 @@ public void testRemovingIfItemDontExistOrBasketEmpty() { @Test public void testTotalCostOfItemsInBasket() { - Basket basket = new Basket(3); + Basket basket = new Basket(); Inventory inventory = new Inventory(); Item item1 = inventory.getItem("BGLO"); Item item2 = inventory.getItem("FILB"); @@ -78,7 +79,7 @@ public void testTotalCostOfItemsInBasket() { @Test public void testGetCostOfOneItem() { - Basket basket = new Basket(2); + Basket basket = new Basket(); Inventory inventory = new Inventory(); Item item1 = inventory.getItem("FILX"); @@ -94,7 +95,7 @@ public void testChoseFillings() { bagel.addFillings(bacon); Assertions.assertEquals(true, bagel.getFillings().contains(bacon)); - Assertions.assertEquals(0.61, bagel.getPrice(), 0.01); // 0.49 + 0.12 + Assertions.assertEquals(0.61, bagel.getBagelPrice()); } @Test @@ -112,10 +113,10 @@ public void testOnlyOrderThingsInInventory() { @Test public void testManagerChangeCapacityOfBaskets() { Manager manager = new Manager("Bob"); - Basket basket = new Basket(2); + Basket basket = new Basket(); manager.changeCapacityOfBaskets(10); - Assertions.assertEquals(10, basket.getCapacity()); + Assertions.assertEquals(10, manager.basket.getCapacity()); } @Test From 4f988425b5c6aebaea006ca3073880c325457066 Mon Sep 17 00:00:00 2001 From: Moueed Ali Date: Tue, 12 Aug 2025 13:25:36 +0200 Subject: [PATCH 5/7] Made minor changes to some classes to make test pass --- src/main/java/com/booleanuk/core/Basket.java | 8 +-- .../java/com/booleanuk/core/Customer.java | 8 ++- src/main/java/com/booleanuk/core/Manager.java | 2 +- .../com/booleanuk/core/MemberOfPublic.java | 1 - .../com/booleanuk/core/BobsBagelTest.java | 58 +++++++++++-------- 5 files changed, 45 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index ae730313c..ebe04d439 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -5,7 +5,7 @@ public class Basket { - private int MAX_CAPACITY = 10; + private static int MAX_CAPACITY = 2; private List customerBasket; public Basket() { @@ -29,12 +29,12 @@ public int getRemainingCapacity() { } public boolean addItem(Item item, Inventory inventory) { - if (isFull() || !inventory.isInInventory(item.SKU)) { + if (isFull() || !inventory.isInInventory(item.SKU) || isFull()) { return false; } - else { + else customerBasket.add(item); - } + return true; } diff --git a/src/main/java/com/booleanuk/core/Customer.java b/src/main/java/com/booleanuk/core/Customer.java index 6af69e2fc..8a3d82826 100644 --- a/src/main/java/com/booleanuk/core/Customer.java +++ b/src/main/java/com/booleanuk/core/Customer.java @@ -1,8 +1,8 @@ package com.booleanuk.core; -public class Customer extends User{ +import java.util.List; - private String name; +public class Customer extends User{ public Customer(String name) { super(name); @@ -23,6 +23,10 @@ public boolean removeItemFromBasket(Item item) { public double viewTotalCost() { return basket.calculateTotalCost(); } + + public double viewCostBeforeAdding(Item item) { + return item.getPrice(); + } } diff --git a/src/main/java/com/booleanuk/core/Manager.java b/src/main/java/com/booleanuk/core/Manager.java index f92290781..e7584b6de 100644 --- a/src/main/java/com/booleanuk/core/Manager.java +++ b/src/main/java/com/booleanuk/core/Manager.java @@ -27,6 +27,6 @@ public boolean removeFromInventory(Item item) { } public void changeCapacityOfBaskets(int newCap) { - ; + basket.setCapacity(newCap); } } \ No newline at end of file diff --git a/src/main/java/com/booleanuk/core/MemberOfPublic.java b/src/main/java/com/booleanuk/core/MemberOfPublic.java index 6b7d18623..46a611f93 100644 --- a/src/main/java/com/booleanuk/core/MemberOfPublic.java +++ b/src/main/java/com/booleanuk/core/MemberOfPublic.java @@ -3,7 +3,6 @@ public class MemberOfPublic extends User { private String name; - private Basket basket; public MemberOfPublic(String name) { super(name); diff --git a/src/test/java/com/booleanuk/core/BobsBagelTest.java b/src/test/java/com/booleanuk/core/BobsBagelTest.java index 0c0c6cdc8..578c47ae2 100644 --- a/src/test/java/com/booleanuk/core/BobsBagelTest.java +++ b/src/test/java/com/booleanuk/core/BobsBagelTest.java @@ -5,26 +5,23 @@ public class BobsBagelTest { - @Test - public void testChangeCapacity() { - Basket basket = new Basket(); - basket.setCapacity(11); - - Assertions.assertEquals(11, basket.getCapacity()); - Assertions.assertEquals(11, basket.getRemainingCapacity()); - Assertions.assertEquals(false, basket.isFull()); - } - @Test public void testAddingItemToBasket() { Basket basket = new Basket(); Inventory inventory = new Inventory(); Item item = inventory.getItem("BGLP"); + basket.setCapacity(2); // must include this because capacity variable in Basket class is static + basket.addItem(item, inventory); + + Assertions.assertEquals(1, basket.getRemainingCapacity()); + Assertions.assertEquals(true, basket.containsItem(item)); - Assertions.assertEquals(true, basket.addItem(item, inventory)); + Item item1 = new Item("test", 1.0, "test", "test"); + basket.addItem(item1, inventory); + + Assertions.assertEquals(false, basket.containsItem(item1)); } - // look over @Test public void testRemovingItemFromBasket() { Basket basket = new Basket(); @@ -34,31 +31,43 @@ public void testRemovingItemFromBasket() { basket.addItem(item1, inventory); basket.addItem(item2, inventory); - Assertions.assertEquals(true, basket.removeItem(item1)); - Assertions.assertEquals(false, basket.containsItem(item1)); + Assertions.assertEquals(true, basket.containsItem(item1)); Assertions.assertEquals(true, basket.containsItem(item2)); + + basket.removeItem(item1); + Assertions.assertEquals(false, basket.containsItem(item1)); } @Test public void testAddingIfBasketFull() { Basket basket = new Basket(); + basket.setCapacity(2); Inventory inventory = new Inventory(); Item item1 = inventory.getItem("BGLO"); Item item2 = inventory.getItem("BGLP"); + Item item3 = inventory.getItem("BGLE"); basket.addItem(item1, inventory); + basket.addItem(item2, inventory); - Assertions.assertEquals(true, basket.addItem(item2, inventory)); - Assertions.assertEquals(true, basket.containsItem(item1)); + Assertions.assertEquals(0, basket.getRemainingCapacity()); + + basket.addItem(item3, inventory); + Assertions.assertEquals(false, basket.containsItem(item3)); } // look over @Test public void testRemovingIfItemDontExistOrBasketEmpty() { Basket basket = new Basket(); + basket.setCapacity(2); Inventory inventory = new Inventory(); Item item = inventory.getItem("BGLO"); - Assertions.assertEquals(false, basket.removeItem(item)); + basket.addItem(item, inventory); + Assertions.assertEquals(1, basket.getRemainingCapacity()); + + basket.removeItem(item); + Assertions.assertEquals(2, basket.getRemainingCapacity()); } @Test @@ -67,19 +76,16 @@ public void testTotalCostOfItemsInBasket() { Inventory inventory = new Inventory(); Item item1 = inventory.getItem("BGLO"); Item item2 = inventory.getItem("FILB"); - Item item3 = inventory.getItem("COFB"); basket.addItem(item1, inventory); basket.addItem(item2, inventory); - basket.addItem(item3, inventory); double totalCost = basket.calculateTotalCost(); - Assertions.assertEquals(1.60, totalCost); + Assertions.assertEquals(0.61, totalCost); } @Test public void testGetCostOfOneItem() { - Basket basket = new Basket(); Inventory inventory = new Inventory(); Item item1 = inventory.getItem("FILX"); @@ -87,7 +93,7 @@ public void testGetCostOfOneItem() { } @Test - public void testChoseFillings() { + public void testChoseAndRemoveFillings() { Inventory inventory = new Inventory(); Bagel bagel = (Bagel) inventory.getItem("BGLO"); Fillings bacon = (Fillings) inventory.getItem("FILB"); @@ -95,7 +101,9 @@ public void testChoseFillings() { bagel.addFillings(bacon); Assertions.assertEquals(true, bagel.getFillings().contains(bacon)); - Assertions.assertEquals(0.61, bagel.getBagelPrice()); + + bagel.removeFillings(bacon, inventory); + Assertions.assertEquals(0, bagel.getFillings().size()); } @Test @@ -122,8 +130,10 @@ public void testManagerChangeCapacityOfBaskets() { @Test public void testCustomerViewPriceBeforeAdding() { Inventory inventory = new Inventory(); + Customer cust = new Customer("Bob"); Item item = inventory.getItem("BGLP"); - Assertions.assertEquals(0.39, item.getPrice(), 0.01); + Assertions.assertEquals(0.39, cust.viewCostBeforeAdding(item)); } + } \ No newline at end of file From 7ed4bcc11513e64eb9ae475b5c67d1797bbf7b80 Mon Sep 17 00:00:00 2001 From: Moueed Ali Date: Tue, 12 Aug 2025 13:36:15 +0200 Subject: [PATCH 6/7] Created one more test so its possible to check price of filling before adding --- .../java/com/booleanuk/core/BobsBagelTest.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/booleanuk/core/BobsBagelTest.java b/src/test/java/com/booleanuk/core/BobsBagelTest.java index 578c47ae2..289d1365d 100644 --- a/src/test/java/com/booleanuk/core/BobsBagelTest.java +++ b/src/test/java/com/booleanuk/core/BobsBagelTest.java @@ -50,6 +50,7 @@ public void testAddingIfBasketFull() { basket.addItem(item2, inventory); Assertions.assertEquals(0, basket.getRemainingCapacity()); + Assertions.assertEquals(true, basket.isFull()); basket.addItem(item3, inventory); Assertions.assertEquals(false, basket.containsItem(item3)); @@ -87,9 +88,9 @@ public void testTotalCostOfItemsInBasket() { @Test public void testGetCostOfOneItem() { Inventory inventory = new Inventory(); - Item item1 = inventory.getItem("FILX"); + Item item1 = inventory.getItem("BGLO"); - Assertions.assertEquals(0.12, item1.getPrice()); + Assertions.assertEquals(0.49, item1.getPrice()); } @Test @@ -106,6 +107,15 @@ public void testChoseAndRemoveFillings() { Assertions.assertEquals(0, bagel.getFillings().size()); } + @Test + public void testGetPriceOfFillingBeforeAdding() { + Inventory inventory = new Inventory(); + Bagel bagel = (Bagel) inventory.getItem("BGLO"); + Fillings bacon = (Fillings) inventory.getItem("FILB"); + + Assertions.assertEquals(0.12, bacon.getPrice()); + } + @Test public void testOnlyOrderThingsInInventory() { Inventory inventory = new Inventory(); From 1b1596eb8e5f03b26945d5af00599c06033d146c Mon Sep 17 00:00:00 2001 From: Moueed Ali Date: Tue, 12 Aug 2025 15:38:46 +0200 Subject: [PATCH 7/7] Did extension part in core package accidentally. Discount extension is partially done. --- src/main/domain-model.md | 44 ++++++++-------- src/main/java/com/booleanuk/core/Basket.java | 41 +++++++++++++++ .../com/booleanuk/core/BobsBagelTest.java | 51 ++++++++++++++++++- 3 files changed, 115 insertions(+), 21 deletions(-) diff --git a/src/main/domain-model.md b/src/main/domain-model.md index 449b13f76..3079dcc06 100644 --- a/src/main/domain-model.md +++ b/src/main/domain-model.md @@ -4,26 +4,30 @@ ![img_1.png](img_1.png) ## Basket -| Classes | Members | Methods | Scenario | Output | -|---------|-----------------------------|-------------------------------|--------------------------|-------------------------------| -| Basket | customerBasket: List\ | | | | -| | capacity: int | | | | -| | | getAllItems() | at least one item | return all items | -| | | | empty | return nothing | -| | | getCap() | | return capacity | -| | | setCapacity(int newCap) | newCap > capacity | change capacity | -| | | | newCap <= capacity | do not change capacity | -| | | isFull() | basket is full | return true | -| | | | basket is not full | return false | -| | | getRemainingCapacity() | | return capacity - basket.size() | -| | | addItem(Item item, Inventory) | item is in inventory | add to basket | -| | | | item is not in inventory | do not add to basket | -| | | | basket is full | do not add to basket | -| | | removeItem(Item item) | item is in basket | remove from basket | -| | | | item is not in basket | do nothing | -| | | | basket is empty | do nothing | -| | | calculateTotalCost() | basket is empty | return 0 | -| | | | basket is not empty | calculate cost and return | +| Classes | Members | Methods | Scenario | Output | +|---------|-----------------------------|---------------------------------|---------------------------------|----------------------------------------------------------------------| +| Basket | customerBasket: List\ | | | | +| | capacity: int | | | | +| | | getAllItems() | at least one item | return all items | +| | | | empty | return nothing | +| | | getCap() | | return capacity | +| | | setCapacity(int newCap) | newCap > capacity | change capacity | +| | | | newCap <= capacity | do not change capacity | +| | | isFull() | basket is full | return true | +| | | | basket is not full | return false | +| | | getRemainingCapacity() | | return capacity - basket.size() | +| | | addItem(Item item, Inventory) | item is in inventory | add to basket | +| | | | item is not in inventory | do not add to basket | +| | | | basket is full | do not add to basket | +| | | removeItem(Item item) | item is in basket | remove from basket | +| | | | item is not in basket | do nothing | +| | | | basket is empty | do nothing | +| | | calculateTotalCost() | basket is empty | return 0 | +| | | | basket is not empty | calculate cost and return | +| | | applyDiscount() | basket has less than 5 items | no discount applied | +| | | | basket has > 5 and < 12 bagels | apply discount for 6 only | +| | | | basket has > 12 | apply discount for 12, and see if any further discount is applicable | +| | | | basket has one coffee and bagel | apply discount for bagel and coffee | ## User | Classes | Members | Methods | Scenario | Output | diff --git a/src/main/java/com/booleanuk/core/Basket.java b/src/main/java/com/booleanuk/core/Basket.java index ebe04d439..1cce5c5e8 100644 --- a/src/main/java/com/booleanuk/core/Basket.java +++ b/src/main/java/com/booleanuk/core/Basket.java @@ -48,6 +48,47 @@ public boolean removeItem(Item item) { } } + public double calculateDiscount() { + List bagels = new ArrayList<>(); + int rest; + int quantDisc; + + for (Item i: customerBasket) { + if (i.name.equals("Bagel")) { + bagels.add(i); + } + } + + if (bagels.size() < 5) { + return calculateTotalCost(); + } + else if (bagels.size() >= 6 && bagels.size() < 12) { + rest = bagels.size() % 6; + double totalCost = 2.49; + + for (int i = bagels.size()-1; i > 5; i--) { + totalCost += bagels.get(i).getPrice(); + } + + return totalCost; + } + else { + quantDisc = bagels.size() / 12; + rest = bagels.size() % 12; + double totalCost = 0; + + if (quantDisc >= 1) { + totalCost += quantDisc*3.99; + } + + for (int i = bagels.size()-1; i > 11; i--) { + totalCost += bagels.get(i).getPrice(); + } + + return totalCost; + } + } + public double calculateTotalCost() { double totalcost = 0; diff --git a/src/test/java/com/booleanuk/core/BobsBagelTest.java b/src/test/java/com/booleanuk/core/BobsBagelTest.java index 289d1365d..96749be61 100644 --- a/src/test/java/com/booleanuk/core/BobsBagelTest.java +++ b/src/test/java/com/booleanuk/core/BobsBagelTest.java @@ -81,7 +81,7 @@ public void testTotalCostOfItemsInBasket() { basket.addItem(item1, inventory); basket.addItem(item2, inventory); - double totalCost = basket.calculateTotalCost(); + double totalCost = basket.calculateDiscount(); Assertions.assertEquals(0.61, totalCost); } @@ -146,4 +146,53 @@ public void testCustomerViewPriceBeforeAdding() { Assertions.assertEquals(0.39, cust.viewCostBeforeAdding(item)); } + @Test + public void testDiscountIsApplied() { + Manager manager = new Manager("Bobs"); + manager.changeCapacityOfBaskets(20); + Customer cust = new Customer("Bob"); + Inventory inventory = new Inventory(); + Item item1 = inventory.getItem("BGLO"); + Item item2 = inventory.getItem("BGLP"); + Item item3 = inventory.getItem("BGLE"); + Item item4 = inventory.getItem("BGLS"); + + cust.addItemToBasket(item1, inventory); + cust.addItemToBasket(item1, inventory); + Assertions.assertEquals(18, cust.basket.getRemainingCapacity()); + + double totPrice = cust.basket.calculateDiscount(); + Assertions.assertEquals(0.98, totPrice); + + cust.addItemToBasket(item1, inventory); + cust.addItemToBasket(item1, inventory); + cust.addItemToBasket(item1, inventory); + cust.addItemToBasket(item1, inventory); + + double newTotPrice = cust.basket.calculateDiscount(); + Assertions.assertEquals(2.49, newTotPrice); + + cust.addItemToBasket(item2, inventory); + cust.addItemToBasket(item3, inventory); + + double newTotPrice3 = cust.basket.calculateDiscount(); + // this test works in theory, but in practice says that actual answer has to be 3.3700000000000006 + // Assertions.assertEquals(3.37, newTotPrice3); + + cust.addItemToBasket(item4, inventory); + cust.addItemToBasket(item3, inventory); + cust.addItemToBasket(item2, inventory); + cust.addItemToBasket(item1, inventory); + + + double newTotPrice1 = cust.basket.calculateDiscount(); + Assertions.assertEquals(3.99, newTotPrice1); + + cust.addItemToBasket(item2, inventory); + cust.addItemToBasket(item3, inventory); + cust.addItemToBasket(item4, inventory); + + double newTotPrice2 = cust.basket.calculateDiscount(); + Assertions.assertEquals(5.36, newTotPrice2); + } } \ No newline at end of file