Exemple #1
0
        public void Analyze(AnalysisConfig config, AnalysisResult result, Checker checker, SyntaxNode syntaxRoot)
        {
            var propertyRaws = syntaxRoot.DescendantNodes().OfType <PropertyDeclarationSyntax>();

            if (!propertyRaws.Any())
            {
                return;
            }
            foreach (var propertyRaw in propertyRaws)
            {
                string propertyName = propertyRaw.Identifier.ToString();
                if (pascalCasing.HasDefect(propertyName))
                {
                    PreOccurence preOcc = pascalCasing.MakeDefect(config, checker, propertyRaw);
                    result.AddDefectWithPreOccurence(preOcc);
                }
                if (DexterUtil.IsPropertyDeclarationBoolean(propertyRaw))
                {
                    if (booleanPropertyPrefixing.HasDefect(propertyName))
                    {
                        PreOccurence preOcc = booleanPropertyPrefixing.MakeDefect(config, checker, propertyRaw);
                        result.AddDefectWithPreOccurence(preOcc);
                    }
                }
            }
        }
Exemple #2
0
        public bool HasDefect(object value)
        {
            string name = value.ToString();

            string[] words = DexterUtil.Split(name);

            return(!OpenNLPUtil.AreNouns(words));
        }
Exemple #3
0
        public void GetCurrentMethodNameTest_ReturnsCorrectMethodName()
        {
            // Given

            // When
            string methodName = DexterUtil.GetCurrentMethodName();

            // Then
            Assert.AreEqual("GetCurrentMethodNameTest_ReturnsCorrectMethodName", methodName);
        }
Exemple #4
0
        internal static void SendResultFileThenDelete(IDexterClient client, string resultFilePrefix)
        {
            string           resultFolderStr = DexterConfig.Instance.DexterHome + "/" + DexterConfig.RESULT_FOLDER_NAME;
            IList <FileInfo> resultFiles     = DexterUtil.GetSubFileNamesByPrefix(resultFolderStr, resultFilePrefix);

            foreach (var resultFile in resultFiles)
            {
                SendResult(resultFile, client);
                MmoveResultFileToOldFolder(resultFile);
            }
        }
Exemple #5
0
        public void SplitTest_PascalCasingWord_ReturnsSplitWord()
        {
            // Given
            string pascalCasingWord = "PascalCasingWord";

            // When
            string[] splitPascalCasingWord = DexterUtil.Split(pascalCasingWord);

            // Then
            Assert.IsTrue(splitPascalCasingWord.SequenceEqual(new string[] { "Pascal", "Casing", "Word" }));
        }
Exemple #6
0
        public void RefinePathTest_RefinesFilePath()
        {
            // Given
            string tempPath     = @":/DEV//temp\DexterCS-cli_#.#.#_64";
            string expectedPath = @":/DEV/temp/DexterCS-cli_#.#.#_64";

            // When
            string result = DexterUtil.RefinePath(tempPath);

            // Then
            Assert.AreEqual(expectedPath, result);
        }
Exemple #7
0
        public void GetBase64CharSequenceTest_SimpleString_ReturnsStringContainingOnlyBase64Characters()
        {
            // Given
            string simpleString = "Simple String Content";

            // When
            string base64String = DexterUtil.GetBase64CharSequence(simpleString);

            // Then
            base64String = base64String.Trim();
            Assert.IsTrue(Regex.IsMatch(base64String, @"^[a-zA-Z0-9\+/]*={0,3}$", RegexOptions.None));
        }
Exemple #8
0
        public void GetBase64CharSequenceTest_SimpleString_ReturnsStringOfLengthDivisableByFour()
        {
            // Given
            string simpleString = "Simple String Content";

            // When
            string base64String = DexterUtil.GetBase64CharSequence(simpleString);

            // Then
            base64String = base64String.Trim();
            Assert.IsTrue((base64String.Length % 4 == 0));
        }
Exemple #9
0
        public void IsDirectoryTest_NonExistantDirectory_ThrowsException()
        {
            // Given
            string   directoryPath = DexterCSTestUtil.TestingDirectory + @"\" + DexterCSTestUtil.RandomString();
            FileInfo fileInfo      = new FileInfo(directoryPath);

            // When
            bool result = DexterUtil.IsDirectory(fileInfo);

            // Then
            // FileNotFoundException is thrown
        }
Exemple #10
0
        public void SplitTest_CamelAndSnakeCasingWord_ReturnsSplitWord()
        {
            // Given
            string camelAndSnakeCasingWord = "camelAndSnake_Casing_Word";

            // When
            string[] splitCamelAndSnakeCasingWord = DexterUtil.Split(camelAndSnakeCasingWord);

            // Then
            foreach (string x in splitCamelAndSnakeCasingWord)
            {
                Console.WriteLine("\"" + x + "\"");
            }
            Assert.IsTrue(splitCamelAndSnakeCasingWord.SequenceEqual(new string[] { "camel", "And", "Snake", "Casing", "Word" }));
        }
Exemple #11
0
        public void SplitTest_SnakeCasingWord_ReturnsSplitWord()
        {
            // Given
            string snakeCasingWord = "snake_casing_word";

            // When
            string[] splitSnakeCasingWord = DexterUtil.Split(snakeCasingWord);

            // Then
            foreach (string x in splitSnakeCasingWord)
            {
                Console.WriteLine("\"" + x + "\"");
            }
            Assert.IsTrue(splitSnakeCasingWord.SequenceEqual(new string[] { "snake", "casing", "word" }));
        }
Exemple #12
0
        public void IsDirectoryTest_ExistingFile_ReturnsFalse()
        {
            try
            {
                // Given
                string filePath = DexterCSTestUtil.TestingDirectory + @"\" + DexterCSTestUtil.RandomString();
                File.Create(filePath).Close();
                FileInfo fileInfo = new FileInfo(filePath);

                // When
                bool result = DexterUtil.IsDirectory(fileInfo);

                // Then
                Assert.IsFalse(result);
            }
            finally
            {
                DexterCSTestUtil.ClearTestingDirectory();
            }
        }
Exemple #13
0
        public void IsDirectoryTest_ExistingDirectory_ReturnsTrue()
        {
            try
            {
                // Given
                string directoryPath = DexterCSTestUtil.TestingDirectory + @"\" + DexterCSTestUtil.RandomString();
                Directory.CreateDirectory(directoryPath);
                FileInfo fileInfo = new FileInfo(directoryPath);

                // When
                bool result = DexterUtil.IsDirectory(fileInfo);

                // Then
                Assert.IsTrue(result);
            }
            finally
            {
                DexterCSTestUtil.ClearTestingDirectory();
            }
        }
Exemple #14
0
        private static void SendResult(FileInfo resultFile, IDexterClient client)
        {
            if (DexterUtil.IsDirectory(resultFile) || !resultFile.Exists || resultFile.IsReadOnly)
            {
                throw new DexterRuntimeException("Cannot access result file (is not a directory or does not exist or is read-only: " + resultFile);
            }

            if (!DexterUtil.JSON_EXTENSION.Equals(resultFile.Extension) ||
                !resultFile.ToString().StartsWith("result_", StringComparison.Ordinal))
            {
                return;
            }
            try
            {
                client.SendAnalysisResult(File.ReadAllText(resultFile.FullName, Encoding.UTF8)).Wait();
            }
            catch (Exception e)
            {
                CliLog.Error(e.StackTrace);
            }
        }
Exemple #15
0
        public async Task StoreSourceCodeCharSequence(long snapshotId, long groupId, string modulePath, string fileName, string sourcecode)
        {
            try
            {
                HttpResponseMessage response = await httpClient.PostAsJsonAsync(DexterConfig.POST_SNAPSHOT_SOURCECODE,
                                                                                new SourceCodeJsonFormat
                {
                    SnapshotId = snapshotId,
                    GroupId    = groupId,
                    ModulePath = modulePath,
                    FileName   = fileName,
                    SourceCode = DexterUtil.GetBase64CharSequence(sourcecode)
                });

                response.EnsureSuccessStatusCode();
            }
            catch (Exception e)
            {
                CliLog.Error(e.StackTrace);
            }
        }
Exemple #16
0
        public void GetSourcecodeFromFileTest_ComplexAndBigFileContent_ReturnsFileContent()
        {
            try
            {
                // Given
                string       filePath     = DexterCSTestUtil.TestingDirectory + @"\" + DexterCSTestUtil.RandomString();
                string       fileContent  = DexterCSTestUtil.RandomString(10000);
                StreamWriter streamWriter = File.CreateText(filePath);
                streamWriter.Write(fileContent);
                streamWriter.Close();
                FileInfo fileInfo = new FileInfo(filePath);

                // When
                string result = DexterUtil.GetSourcecodeFromFile(filePath);

                // Then
                Assert.AreEqual(fileContent, result);
            }
            finally
            {
                DexterCSTestUtil.ClearTestingDirectory();
            }
        }