public void Non_Null_NotEqual_To_Null_Left()
        {
            //Arrange
            var version = new PlaceholderVersion(new byte[0], new byte[0]);

            //Act
            var result = null != version;

            //Assert
            Assert.True(result);
        }
        public void Non_Null_Not_Equal_To_Null_Right()
        {
            //Arrange
            var version = new PlaceholderVersion(new byte[0], new byte[0]);

            //Act
            var result = version == null;

            //Assert
            Assert.False(result);
        }
        public void Trailing_Zeros_Dont_Change_Equality()
        {
            //Arrange
            var version1 = new PlaceholderVersion(new byte[] { 1, 2, 3, 0, 0, 0 }, new byte[] { 4, 5, 6, 7 });
            var version2 = new PlaceholderVersion(new byte[] { 1, 2, 3 }, new byte[] { 4, 5, 6, 7, 0 });

            //Act
            var result = version1 == version2;

            //Assert
            Assert.True(result);
        }
        public void Multibyte_Representation_Equality()
        {
            //Arrange
            var version1 = new PlaceholderVersion(new byte[] { 1, 2, 3 }, new byte[] { 4, 5, 6, 7 });
            var version2 = new PlaceholderVersion(new byte[] { 1, 2, 3 }, new byte[] { 4, 5, 6, 7 });

            //Act
            var result = version1 == version2;

            //Assert
            Assert.True(result);
        }
        public void Hashes_Are_Equal()
        {
            //Arrange
            var version1 = new PlaceholderVersion(new byte[] { 1, 2, 3 }, new byte[] { 4, 5, 6, 7 });
            var version2 = new PlaceholderVersion(new byte[] { 1, 2, 3 }, new byte[] { 4, 5, 6, 7 });

            //Act
            var result = version1.GetHashCode() == version2.GetHashCode();

            //Assert
            Assert.True(result);
        }
        public void Equal_Via_Object_Equals()
        {
            //Arrange
            var version1 = new PlaceholderVersion(new byte[] { 1, 2, 3 }, new byte[] { 4, 5, 6, 7 });
            var version2 = new PlaceholderVersion(new byte[] { 1, 2, 3 }, new byte[] { 4, 5, 6, 7 });

            //Act
            var result = version1.Equals((object)version2);

            //Assert
            Assert.True(result);
        }
        public void Empty_Versions_Compare_Equal()
        {
            //Arrange
            var version1 = new PlaceholderVersion(new byte[0], new byte[0]);
            var version2 = new PlaceholderVersion(new byte[0], new byte[0]);

            //Act
            var result = version1 == version2;

            //Assert
            Assert.True(result);
        }
        async Task IFileSystem.GetFileData(string path, PlaceholderVersion version, long offset, int length, Stream toWrite)
        {
            await Task.Yield();

            if (!(ChasePath(path) is SimpleFile file))
            {
                return;
            }
            if (file.Version != version)
            {
                return;
            }
            toWrite.Write(file.GetContent(offset, length).Span);
        }
        public void Faithful_Return_ContentID()
        {
            //Arrange
            var providerID = new byte[0];
            var contentID  = new byte[] { 37, 91 };
            var target     = new PlaceholderVersion(providerID, contentID);

            //Act
            var newContentID = target.ContentId;

            //Assert
            Assert.Equal(2, newContentID.Length);
            Assert.Equal(37, newContentID[0]);
            Assert.Equal(91, newContentID[1]);
        }
        static void Main()
        {
            var noddyDir = Path.GetFullPath("Noddy");

            if (!Directory.Exists(noddyDir))
            {
                Directory.CreateDirectory(noddyDir);
            }
            IInstanceManager fileManager = new FileBasedInstanceManager("Noddy.reg");
            var instance = fileManager.FindByName("Noddy");
            var version  = new PlaceholderVersion(new byte[0], new byte[0]);

            if (instance == null)
            {
                var instanceGuid = Guid.NewGuid();
                instance = fileManager.Register("Noddy", noddyDir, null, default, version, instanceGuid);
        public void Faithful_Return_ProviderID()
        {
            //Arrange
            var providerID = new byte[] { 1, 19, 3 };
            var contentID  = new byte[0];
            var target     = new PlaceholderVersion(providerID, contentID);

            //Act
            var newProviderID = target.ProviderId;

            //Assert
            Assert.Equal(3, newProviderID.Length);
            Assert.Equal(1, newProviderID[0]);
            Assert.Equal(19, newProviderID[1]);
            Assert.Equal(3, newProviderID[2]);
        }
        internal static PRJ_PLACEHOLDER_VERSION_INFO PRJ_PLACEHOLDER_VERSION_INFOFromPlaceholderVersion(PlaceholderVersion original)
        {
            var pvi = new PRJ_PLACEHOLDER_VERSION_INFO
            {
                ContentID  = new byte[Constants.PRJ_PLACEHOLDER_ID_LENGTH],
                ProviderID = new byte[Constants.PRJ_PLACEHOLDER_ID_LENGTH]
            };

            original.ContentId.CopyTo(pvi.ContentID);
            original.ProviderId.CopyTo(pvi.ProviderID);
            return(pvi);
        }
 async IAsyncEnumerator <BasicInfo> IFileSystem.FindContent(string directoryPath, PlaceholderVersion versionInfo, Func <string, bool> filter, IComparer <string> sortOrder, CancellationToken cancel)
 {
     if (!(ChasePath(directoryPath) is SimpleDirectory directory))
     {
         yield break;
     }
     if (directory.Version != versionInfo)
     {
         yield break;
     }
     foreach (var item in directory.GetObjects().OrderBy(no => no.Name, sortOrder).Where(no => filter(no.Name)))
     {
         yield return(item.BasicMetadata);
     }
 }
Esempio n. 14
0
 IRunnableInstance IInstanceManager.Register(string name, string rootPath, string targetPath, InstanceOptions defaultOptions, PlaceholderVersion rootVersionInfo, Guid instanceGuid)
 {
     lock (_instanceLock)
     {
         if (_names.ContainsKey(name))
         {
             throw new ArgumentException("Name already registered", nameof(name));
         }
         if (_paths.ContainsKey(rootPath))
         {
             throw new ArgumentException("Path already registered", nameof(rootPath));
         }
         if (_guids.ContainsKey(instanceGuid))
         {
             throw new ArgumentException("Instance already registered", nameof(instanceGuid));
         }
         if (_outboundFunctions.PrjMarkDirectoryAsPlaceholder(rootPath, targetPath, LevelShifter.PRJ_PLACEHOLDER_VERSION_INFOFromPlaceholderVersion(rootVersionInfo), instanceGuid) != HRESULT.S_OK)
         {
             throw new NotSupportedException("Could not register path with System");
         }
         var instance = new RunnableInstance(name, rootPath, instanceGuid, defaultOptions, _outboundFunctions);
         _names.Add(name, instance);
         _paths.Add(rootPath, instance);
         _guids.Add(instanceGuid, instance);
         WriteRecord(instance);
         _dataFile.Flush();
         return(instance);
     }
 }