Ejemplo n.º 1
0
        public static ResultService <CloneFileOperations> CreateFileOperations(File file, User user)
        {
            if (file == null)
            {
                return(ResultService <CloneFileOperations> .Error($"File parametr is null"));
            }

            if (file.IsDeleted)
            {
                //    throw new Exception($"Can't clone deleted file {file.Key}");
                return(ResultService <CloneFileOperations> .Error($"Can't clone deleted file {file.Key}"));
            }

            CloneFileOperations clone = new CloneFileOperations();

            clone.KeyUser        = user.Key;
            clone.KeyFile        = Guid.NewGuid().ToString();
            clone.KeyFileVersion = Guid.NewGuid().ToString();
            clone.FileName       = file.FileName;
            clone.Extension      = file.Extension;
            clone.Parent         = file.LongKey;
            clone.IsAdd          = false;
            clone.IsChange       = false;
            clone.IsClone        = true;
            clone.IsDelete       = false;
            clone.OperationDate  = DateTime.Now;
            clone.CreateOrderBy();
            return(ResultService <CloneFileOperations> .Ok(clone));
        }
        // [TestMethod]
        public void CloneFile_RunAddUserAndAddFileAndCloneFile_AndResultDeleteFile()
        {
            string login    = "******";
            string name     = "Name";
            string surName  = "SurName";
            string password = "******";

            AddUserOperations addUserOperations = AddUserOperations.CreateUserOperations(login, password, name, surName);

            //HiveDatabaseService databaseService = new  HiveDatabaseService(connectionString);
            sut.DoUserOperations(addUserOperations).Wait();;
            User user = sut.GetUser(addUserOperations.KeyUser).Result;


            AddUserOperations addUserOperationsOther = AddUserOperations.CreateUserOperations(login, password, name, surName);

            sut.DoUserOperations(addUserOperationsOther).Wait();;
            User userOther = sut.GetUser(addUserOperationsOther.KeyUser).Result;


            string            fileName          = "filename";
            string            extension         = "extension";
            AddFileOperations addFileOperations = AddFileOperations.CreateFileOperations(user, fileName, extension).OnError(a => throw new Exception(a)).Value;;

            sut.DoFileOperations(addFileOperations).Wait();

            File file = sut.GetFile(addFileOperations.KeyUserFile).Result;

            CloneFileOperations cloneFileOperations = CloneFileOperations.CreateFileOperations(file, userOther).OnError(a => throw new Exception(a)).Value;;


            //Act
            sut.DoFileOperations(cloneFileOperations).Wait();

            // Assert
            File fileRead = sut.GetFile(cloneFileOperations.KeyUserFile).Result;


            Assert.AreEqual(fileName, fileRead.FileName);
            Assert.AreEqual(extension, fileRead.Extension);

            Assert.AreEqual(cloneFileOperations.KeyUser, fileRead.KeyUser);
            Assert.AreEqual(cloneFileOperations.KeyUserFile, fileRead.Key);
            Assert.AreEqual(cloneFileOperations.Key, fileRead.LongKey);
            Assert.AreEqual(cloneFileOperations.OperationDate.ToString("yyyy-MM-dd HH:mm:ss"), file.LastOperationDate.ToString("yyyy-MM-dd HH:mm:ss"));
            Assert.IsFalse(fileRead.IsDeleted);
            Assert.IsTrue(fileRead.IsCloned);
            Assert.AreEqual(addFileOperations.Key, fileRead.Parent);
        }