@@ -8,12 +8,11 @@ import (
88 "os"
99 "path/filepath"
1010
11- "github.com/golang/mock/gomock"
1211 . "github.com/onsi/ginkgo/v2"
1312 . "github.com/onsi/gomega"
1413
1514 "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/colorlogger"
16- mockfilesystem "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/filesystem/mock "
15+ "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/filesystem/filesystemfakes "
1716 "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/package_stemcell/config"
1817 "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/package_stemcell/packager"
1918 "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/test/helpers"
@@ -112,86 +111,94 @@ var _ = Describe("VmdkPackager", func() {
112111 })
113112
114113 Describe ("ValidateFreeSpaceForPackage" , func () {
115- var (
116- mockCtrl * gomock.Controller
117- mockFileSystem * mockfilesystem.MockFileSystem
118- )
114+ var fakeFileSystem * filesystemfakes.FakeFileSystem
115+
116+ BeforeEach (func () {
117+ fakeFileSystem = & filesystemfakes.FakeFileSystem {}
118+ })
119119
120120 Context ("When VMDK file is invalid" , func () {
121+ BeforeEach (func () {
122+ fakeFileSystem .GetAvailableDiskSpaceReturns (0 , errors .New ("error getting available disk space" ))
123+ })
124+
121125 It ("returns an error" , func () {
122126 vmdkPackager .BuildOptions .VMDKFile = ""
123127
124- mockCtrl = gomock .NewController (GinkgoT ())
125- mockFileSystem = mockfilesystem .NewMockFileSystem (mockCtrl )
126-
127- err := vmdkPackager .ValidateFreeSpaceForPackage (mockFileSystem )
128+ err := vmdkPackager .ValidateFreeSpaceForPackage (fakeFileSystem )
128129 Expect (err ).To (HaveOccurred ())
129130 Expect (err .Error ()).To (ContainSubstring ("could not get vmdk info" ))
130-
131131 })
132132 })
133133
134134 Context ("When filesystem has enough free space for stemcell (twice the size of the expected free space)" , func () {
135- It ("does not return an error" , func () {
136- vmdkPackager .BuildOptions .VMDKFile = filepath .Join (".." , ".." , "test" , "data" , "expected.vmdk" )
137-
138- mockCtrl = gomock .NewController (GinkgoT ())
139- mockFileSystem = mockfilesystem .NewMockFileSystem (mockCtrl )
135+ var expectFreeSpace uint64
140136
137+ BeforeEach (func () {
138+ vmdkPackager .BuildOptions .VMDKFile = filepath .Join (".." , ".." , "test" , "data" , "expected.vmdk" )
141139 vmdkFile , err := os .Stat (vmdkPackager .BuildOptions .VMDKFile )
142140 Expect (err ).ToNot (HaveOccurred ())
143-
144141 testVmdkSize := vmdkFile .Size ()
145- expectFreeSpace : = uint64 (testVmdkSize )* 2 + (packager .Gigabyte / 2 )
142+ expectFreeSpace = uint64 (testVmdkSize )* 2 + (packager .Gigabyte / 2 )
146143
144+ fakeFileSystem .GetAvailableDiskSpaceReturns (expectFreeSpace * 2 , nil )
145+ })
146+
147+ It ("does not return an error" , func () {
147148 directoryPath := filepath .Dir (vmdkPackager .BuildOptions .VMDKFile )
148- mockFileSystem .EXPECT ().GetAvailableDiskSpace (directoryPath ).Return (uint64 (expectFreeSpace * 2 ), nil ).AnyTimes ()
149149
150- err = vmdkPackager .ValidateFreeSpaceForPackage (mockFileSystem )
150+ err : = vmdkPackager .ValidateFreeSpaceForPackage (fakeFileSystem )
151151 Expect (err ).To (Not (HaveOccurred ()))
152152
153+ Expect (fakeFileSystem .GetAvailableDiskSpaceCallCount ()).To (Equal (1 ))
154+ Expect (fakeFileSystem .GetAvailableDiskSpaceArgsForCall (0 )).To (Equal (directoryPath ))
153155 })
154156 })
155- Context ("When filesystem does not have enough free space for stemcell (half the size of the expected free space" , func () {
156- It ("returns error" , func () {
157- vmdkPackager .BuildOptions .VMDKFile = filepath .Join (".." , ".." , "test" , "data" , "expected.vmdk" )
158157
159- mockCtrl = gomock . NewController ( GinkgoT ())
160- mockFileSystem = mockfilesystem . NewMockFileSystem ( mockCtrl )
158+ Context ( "When filesystem does not have enough free space for stemcell (half the size of the expected free space" , func () {
159+ var expectFreeSpace uint64
161160
161+ BeforeEach (func () {
162+ vmdkPackager .BuildOptions .VMDKFile = filepath .Join (".." , ".." , "test" , "data" , "expected.vmdk" )
162163 vmdkFile , err := os .Stat (vmdkPackager .BuildOptions .VMDKFile )
163164 Expect (err ).ToNot (HaveOccurred ())
164-
165165 testVmdkSize := vmdkFile .Size ()
166- expectFreeSpace : = uint64 (testVmdkSize )* 2 + (packager .Gigabyte / 2 )
166+ expectFreeSpace = uint64 (testVmdkSize )* 2 + (packager .Gigabyte / 2 )
167167
168- directoryPath := filepath . Dir ( vmdkPackager . BuildOptions . VMDKFile )
169- mockFileSystem . EXPECT (). GetAvailableDiskSpace ( directoryPath ). Return ( uint64 ( expectFreeSpace / 2 ), nil ). AnyTimes ( )
168+ fakeFileSystem . GetAvailableDiskSpaceReturns ( expectFreeSpace / 2 , nil )
169+ } )
170170
171- err = vmdkPackager .ValidateFreeSpaceForPackage (mockFileSystem )
171+ It ("returns error" , func () {
172+ directoryPath := filepath .Dir (vmdkPackager .BuildOptions .VMDKFile )
172173
174+ err := vmdkPackager .ValidateFreeSpaceForPackage (fakeFileSystem )
173175 Expect (err ).To (HaveOccurred ())
174176
175177 expectedErrorMsg := "Not enough space to create stemcell. Free up "
176178 Expect (err .Error ()).To (ContainSubstring (expectedErrorMsg ))
179+
180+ Expect (fakeFileSystem .GetAvailableDiskSpaceCallCount ()).To (Equal (1 ))
181+ Expect (fakeFileSystem .GetAvailableDiskSpaceArgsForCall (0 )).To (Equal (directoryPath ))
177182 })
178183 })
179184
180185 Context ("When filesystem fails to provide free space" , func () {
186+ BeforeEach (func () {
187+ fakeFileSystem .GetAvailableDiskSpaceReturns (4 , errors .New ("error getting available disk space" ))
188+ })
189+
181190 It ("returns error specifying that given disk could not provide free space" , func () {
182191 vmdkPackager .BuildOptions .VMDKFile = filepath .Join (".." , ".." , "test" , "data" , "expected.vmdk" )
183-
184- mockCtrl = gomock .NewController (GinkgoT ())
185- mockFileSystem = mockfilesystem .NewMockFileSystem (mockCtrl )
186-
187192 directoryPath := filepath .Dir (vmdkPackager .BuildOptions .VMDKFile )
188- mockFileSystem .EXPECT ().GetAvailableDiskSpace (directoryPath ).Return (uint64 (4 ), errors .New ("some error" )).AnyTimes ()
189193
190- err := vmdkPackager .ValidateFreeSpaceForPackage (mockFileSystem )
194+ err := vmdkPackager .ValidateFreeSpaceForPackage (fakeFileSystem )
191195
192196 Expect (err ).To (HaveOccurred ())
193197 expectedErrorMsg := "could not check free space on disk: "
194198 Expect (err .Error ()).To (ContainSubstring (expectedErrorMsg ))
199+
200+ Expect (fakeFileSystem .GetAvailableDiskSpaceCallCount ()).To (Equal (1 ))
201+ Expect (fakeFileSystem .GetAvailableDiskSpaceArgsForCall (0 )).To (Equal (directoryPath ))
195202 })
196203 })
197204 })
0 commit comments