diff options
author | vlad <vlad@drivergrp.com> | 2016-10-21 16:07:05 -0400 |
---|---|---|
committer | vlad <vlad@drivergrp.com> | 2016-10-21 16:07:05 -0400 |
commit | 02810f5eac3b4ce6a5d1128281a01b2a2ed0647c (patch) | |
tree | a733b421759216a7f12d227d2f912eecdfa842aa /src/test/scala/com/drivergrp/core/FileTest.scala | |
parent | 7c77f5ff23e4b0f8d5e189492bc4f25f847adc00 (diff) | |
download | driver-core-02810f5eac3b4ce6a5d1128281a01b2a2ed0647c.tar.gz driver-core-02810f5eac3b4ce6a5d1128281a01b2a2ed0647c.tar.bz2 driver-core-02810f5eac3b4ce6a5d1128281a01b2a2ed0647c.zip |
Renamed package to xyz, New formatting, authorize directive supporting multiple permissions
Diffstat (limited to 'src/test/scala/com/drivergrp/core/FileTest.scala')
-rw-r--r-- | src/test/scala/com/drivergrp/core/FileTest.scala | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/src/test/scala/com/drivergrp/core/FileTest.scala b/src/test/scala/com/drivergrp/core/FileTest.scala deleted file mode 100644 index 2c9c2c9..0000000 --- a/src/test/scala/com/drivergrp/core/FileTest.scala +++ /dev/null @@ -1,126 +0,0 @@ -package com.drivergrp.core - -import java.io.File -import java.nio.file.Paths - -import com.amazonaws.services.s3.AmazonS3 -import com.amazonaws.services.s3.model._ -import com.drivergrp.core.file.{FileSystemStorage, S3Storage} -import org.scalatest.mock.MockitoSugar -import org.scalatest.{FlatSpec, Matchers} -import org.mockito.Mockito._ -import org.mockito.Matchers._ - -import scala.concurrent.Await -import scala.concurrent.duration._ - -class FileTest extends FlatSpec with Matchers with MockitoSugar { - - "S3 Storage" should "create and download local files and do other operations" in { - import scala.collection.JavaConverters._ - - val tempDir = System.getProperty("java.io.tmpdir") - val sourceTestFile = generateTestLocalFile(tempDir) - val testFileName = "uploadTestFile" - - val randomFolderName = java.util.UUID.randomUUID().toString - val testDirPath = Paths.get(randomFolderName) - val testFilePath = Paths.get(randomFolderName, testFileName) - - val testBucket = Name[Bucket]("IamBucket") - - val s3PutMock = mock[PutObjectResult] - when(s3PutMock.getETag).thenReturn("IAmEtag") - - val s3ObjectSummaryMock = mock[S3ObjectSummary] - when(s3ObjectSummaryMock.getKey).thenReturn(testFileName) - when(s3ObjectSummaryMock.getETag).thenReturn("IAmEtag") - when(s3ObjectSummaryMock.getLastModified).thenReturn(new java.util.Date()) - - val s3ResultsMock = mock[ListObjectsV2Result] - when(s3ResultsMock.getNextContinuationToken).thenReturn("continuationToken") - when(s3ResultsMock.isTruncated).thenReturn(false, // before file created it is empty (zero pages) - true, - false, // after file is uploaded it contains this one file (one page) - false) // after file is deleted it is empty (zero pages) again - when(s3ResultsMock.getObjectSummaries).thenReturn( - // before file created it is empty, `getObjectSummaries` is never called - List[S3ObjectSummary](s3ObjectSummaryMock).asJava, // after file is uploaded it contains this one file - List.empty[S3ObjectSummary].asJava) // after file is deleted it is empty again - - val s3ObjectMetadataMock = mock[ObjectMetadata] - val amazonS3Mock = mock[AmazonS3] - when(amazonS3Mock.listObjectsV2(any[ListObjectsV2Request]())).thenReturn(s3ResultsMock) - when(amazonS3Mock.putObject(testBucket, testFilePath.toString, sourceTestFile)).thenReturn(s3PutMock) - when(amazonS3Mock.getObject(any[GetObjectRequest](), any[File]())).thenReturn(s3ObjectMetadataMock) - - val s3Storage = new S3Storage(amazonS3Mock, testBucket, scala.concurrent.ExecutionContext.global) - - val filesBefore = Await.result(s3Storage.list(testDirPath).run, 10 seconds) - filesBefore shouldBe empty - - Await.result(s3Storage.upload(sourceTestFile, testFilePath), 10 seconds) - - val filesAfterUpload = Await.result(s3Storage.list(testDirPath).run, 10 seconds) - filesAfterUpload.size should be(1) - val uploadedFileLine = filesAfterUpload.head - uploadedFileLine.name should be(Name[File](testFileName)) - uploadedFileLine.location should be(testFilePath) - uploadedFileLine.revision.id.length should be > 0 - uploadedFileLine.lastModificationDate.millis should be > 0L - - val downloadedFile = Await.result(s3Storage.download(testFilePath).run, 10 seconds) - downloadedFile shouldBe defined - downloadedFile.foreach { - _.getAbsolutePath.endsWith(testFilePath.toString) should be(true) - } - - Await.result(s3Storage.delete(testFilePath), 10 seconds) - - val filesAfterRemoval = Await.result(s3Storage.list(testDirPath).run, 10 seconds) - filesAfterRemoval shouldBe empty - } - - "Filesystem files storage" should "create and download local files and do other operations" in { - - val tempDir = System.getProperty("java.io.tmpdir") - val sourceTestFile = generateTestLocalFile(tempDir) - - val randomFolderName = java.util.UUID.randomUUID().toString - val testDirPath = Paths.get(tempDir, randomFolderName) - val testFilePath = Paths.get(tempDir, randomFolderName, "uploadTestFile") - - val fileStorage = new FileSystemStorage(scala.concurrent.ExecutionContext.global) - - val filesBefore = Await.result(fileStorage.list(testDirPath).run, 10 seconds) - filesBefore shouldBe empty - - Await.result(fileStorage.upload(sourceTestFile, testFilePath), 10 seconds) - - val filesAfterUpload = Await.result(fileStorage.list(testDirPath).run, 10 seconds) - filesAfterUpload.size should be(1) - val uploadedFileLine = filesAfterUpload.head - uploadedFileLine.name should be(Name[File]("uploadTestFile")) - uploadedFileLine.location should be(testFilePath) - uploadedFileLine.revision.id.length should be > 0 - uploadedFileLine.lastModificationDate.millis should be > 0L - - val downloadedFile = Await.result(fileStorage.download(testFilePath).run, 10 seconds) - downloadedFile shouldBe defined - downloadedFile.map(_.getAbsolutePath) should be(Some(testFilePath.toString)) - - Await.result(fileStorage.delete(testFilePath), 10 seconds) - - val filesAfterRemoval = Await.result(fileStorage.list(testDirPath).run, 10 seconds) - filesAfterRemoval shouldBe empty - } - - private def generateTestLocalFile(path: String): File = { - val randomSourceFolderName = java.util.UUID.randomUUID().toString - val sourceTestFile = new File(Paths.get(path, randomSourceFolderName, "uploadTestFile").toString) - sourceTestFile.getParentFile.mkdirs() should be(true) - sourceTestFile.createNewFile() should be(true) - using(new java.io.PrintWriter(sourceTestFile)) { _.append("Test File Contents") } - sourceTestFile - } -} |