示例#1
0
        public void AddFlagTest()
        {
            MultipleBinaryFlag FlagTest = new MultipleBinaryFlag(6, true);

            Assert.IsTrue(connectionWithDB.AddFlag(FlagTest.ToString(), FlagTest.GetFlag()));

            FlagTest.ResetFlag(1);
            FlagTest.ResetFlag(2);
            Assert.IsTrue(connectionWithDB.AddFlag(FlagTest.ToString(), FlagTest.GetFlag()));


            MultipleBinaryFlag FlagTest1 = new MultipleBinaryFlag(33, false);

            Assert.IsTrue(connectionWithDB.AddFlag(FlagTest1.ToString(), FlagTest.GetFlag()));

            MultipleBinaryFlag FlagTest2 = new MultipleBinaryFlag(66, false);

            Assert.IsTrue(connectionWithDB.AddFlag(FlagTest2.ToString(), FlagTest.GetFlag()));

            //AddFlag manually
            Assert.IsTrue(connectionWithDB.AddFlag("TFT", false));
            Assert.IsTrue(connectionWithDB.AddFlag("TT", true));
            Assert.IsTrue(connectionWithDB.AddFlag("FFFTTFT", false));

            //AddFlag manually with errors
            Assert.IsFalse(connectionWithDB.AddFlag("FF", true));
            Assert.IsFalse(connectionWithDB.AddFlag("TT", false));
        }
示例#2
0
        public void TestToString()
        {
            MultipleBinaryFlag mbf = new MultipleBinaryFlag(4, false);
            MultipleBinaryFlag mbt = new MultipleBinaryFlag(4, true);

            Assert.AreEqual(mbt.ToString(), "TTTT");
            Assert.AreEqual(mbf.ToString(), "FFFF");

            //test to string after flag setting
            mbf.SetFlag(1);
            Assert.AreEqual(mbf.ToString(), "FTFF");

            for (ulong i = 0; i < 4; i++)
            {
                mbf.SetFlag(i);
            }
            Assert.AreEqual(mbf.ToString(), "TTTT");

            //test to string after flag resettting
            mbf.ResetFlag(1);
            Assert.AreEqual(mbf.ToString(), "TFTT");

            for (ulong i = 0; i < 4; i++)
            {
                mbf.ResetFlag(i);
            }
            Assert.AreEqual(mbf.ToString(), "FFFF");
        }
示例#3
0
        /// <summary>
        /// Runs full test of MultipleBinaryFlag given specified length and initialValue.
        /// Consists of such steps:
        /// 1. Test that new object is setting up initial value correctly by checking GetFlag() and ToString() method's return values.
        /// 2. Test ResetFlag() works as intended by resetting flag at each position of 0..length-1. Checks expected output of GetFlag() and ToString() on each step.
        /// 3. Test SetFlag() similar to p.2 (ResetFlag())
        /// 4. Test ArgumentOutOfRangeException is being thrown when calling ResetFlag() or SetFlag() with position>=length
        /// </summary>
        /// <param name="len"></param>
        /// <param name="initialValue"></param>
        private static void TestFullFlow(ulong length, bool initialValue)
        {
            MultipleBinaryFlag impl = new MultipleBinaryFlag(length, initialValue);

            // 1. Test that new object is setting up initial value correctly.
            char   expected_char = initialValue ? 'T' : 'F';
            string expected      = new string(expected_char, (int)length);

            char[] expected_arr = expected.ToCharArray();
            Assert.AreEqual(initialValue, impl.GetFlag());             // GetFlag should be equal to initialValue right after object construction

            var actual = impl.ToString();

            Assert.AreEqual <string>(expected, actual, $"Expected string of '{expected_char}' chars of {length} symbols. Got '{actual}' instead");

            // 2. Test ResetFlag(): apply reset for each element by one, compare output (ToString) to expected.
            // Also checks if GetFlag() returns false (since not all elements are True)
            for (ulong i = 0; i < length; ++i)
            {
                impl.ResetFlag(i);
                expected_arr[i] = 'F';
                expected        = new string(expected_arr);

                actual = impl.ToString();
                Assert.AreEqual <string>(expected, actual);
                Assert.IsFalse(impl.GetFlag());
            }

            // 3. Test SetFlag(): set flag for each position by one, compare output (ToString) to expected.
            // Also checks if GetFlag() returns false (since not all elements are True)
            for (ulong i = 0; i < length; ++i)
            {
                impl.SetFlag(i);
                expected_arr[i] = 'T';
                expected        = new string(expected_arr);

                actual = impl.ToString();
                Assert.AreEqual <string>(expected, actual);
                // After last step (i==len-1) flag should become true.
                // Before that it should remain false, as not all flags are true.
                if (i < length - 1)
                {
                    Assert.IsFalse(impl.GetFlag());
                }
                else
                {
                    Assert.IsTrue(impl.GetFlag());
                }
            }

            // 4. Test ArgumentOutOfRangeException is being thrown when calling ResetFlag/SetFlag with position>=length
            Action throws_outOfRange_resetFlag = () => { impl.ResetFlag(length); };
            Action throws_outOfRange_setFlag   = () => { impl.SetFlag(length); };

            Assert.ThrowsException <ArgumentOutOfRangeException>(throws_outOfRange_setFlag);
            Assert.ThrowsException <ArgumentOutOfRangeException>(throws_outOfRange_resetFlag);

            impl.Dispose();
        }
示例#4
0
        public void EqualFlagsTest()
        {
            Assert.NotEqual(FlagTest1.ToString(), FlagTest2.ToString());
            Assert.NotEqual(FlagTest3.ToString(), FlagTest4.ToString());
            Assert.NotEqual(FlagTest2.ToString(), FlagTest4.ToString());

            Assert.Equal(FlagTest1.ToString(), FlagTest1_1.ToString());
        }
        public void lengthMaxPossibleTest()
        {
            ulong length            = 17179868704;
            MultipleBinaryFlag flag = new MultipleBinaryFlag(length);

            BaseFileWorker.Write(flag.ToString(), "../../../test4.txt");
            Assert.Equal(flag.ToString(),
                         BaseFileWorker.ReadAll("../../../test4.txt"));
        }
        public void lengthTest()
        {
            ulong length            = 10;
            MultipleBinaryFlag flag = new MultipleBinaryFlag(length);

            BaseFileWorker.Write(flag.ToString(), "../../../test3.txt");
            Assert.Equal(flag.ToString(),
                         BaseFileWorker.ReadAll("../../../test3.txt"));
        }
        public void setTest()
        {
            ulong length            = 10;
            MultipleBinaryFlag flag = new MultipleBinaryFlag(length, false);

            flag.SetFlag(7);
            flag.SetFlag(0);
            BaseFileWorker.Write(flag.ToString(), "../../../test5.txt");
            Assert.Equal(flag.ToString(), BaseFileWorker.ReadAll("../../../test5.txt"));
        }
        public void Test_Get_Flag_Equal_With_Added_Flag()
        {
            MultipleBinaryFlag mbf = new MultipleBinaryFlag(8);
            string             resView;
            bool?resValue;

            fdu.AddFlag(mbf.ToString(), true);
            fdu.GetFlag(2, out resView, out resValue);
            Assert.AreEqual(resView, mbf.ToString());
            Assert.AreEqual(resValue, mbf.GetFlag());
        }
示例#9
0
        public void TestDispose()
        {
            MultipleBinaryFlag flag = new MultipleBinaryFlag(test_length, false);

            flag.SetFlag(3);
            Assert.AreEqual(flag.ToString(), "FFFTFFFFFF");

            flag.Dispose();

            Assert.NotNull(flag);
            Assert.AreNotEqual(flag.ToString(), "FFFTFFFFFF");
        }
示例#10
0
        public void ToStringTest()
        {
            Assert.AreEqual("TTTTTTT", flag_1.ToString());
            Assert.AreEqual("TTTTTTT", flag_2.ToString());
            Assert.AreEqual("FFFFFFF", flag_3.ToString());

            flag_1.ResetFlag(0);
            flag_2.ResetFlag(3);
            flag_3.SetFlag(0);

            Assert.AreEqual("FTTTTTT", flag_1.ToString());
            Assert.AreEqual("TTTFTTT", flag_2.ToString());
            Assert.AreEqual("TFFFFFF", flag_3.ToString());
        }
        public void Test_GetFlag()
        {
            var flag = new MultipleBinaryFlag(5, false);

            flag.SetFlag(3); flag.SetFlag(4);
            _databaseConnection.AddFlag(flag.ToString(), (bool)flag.GetFlag());
            int?   id = _databaseConnection.GetIntBySql("SELECT TOP (1) [MultipleBinaryFlagID] FROM [IIG.CoSWE.FlagpoleDB].[dbo].[MultipleBinaryFlags] ORDER BY [MultipleBinaryFlagID] DESC");
            string actualFlagView;
            bool?  actualFlagValue;
            var    result = _databaseConnection.GetFlag((int)id, out actualFlagView, out actualFlagValue);

            Assert.IsTrue(result);
            Assert.AreEqual(actualFlagView, flag.ToString());
            Assert.AreEqual(actualFlagValue, flag.GetFlag());
        }
示例#12
0
        public void shouldDisposeFlags_Dispose(ulong lenght, bool initValue)
        {
            var obj = new MultipleBinaryFlag(lenght, initValue);

            obj.Dispose();
            Assert.Null(obj.ToString());
        }
示例#13
0
        public void lengthTest()
        {
            ulong length            = 10;
            MultipleBinaryFlag flag = new MultipleBinaryFlag(length);

            Assert.Equal((int)length, flag.ToString().Length);
        }
示例#14
0
        public void TestReadAllMultiple()
        {
            /*
             *  Input file contains
             *  'TTTTTTTT'
             *  'FFFFFFFF'
             */
            ulong tmp = 8;
            MultipleBinaryFlag testFlag1  = new MultipleBinaryFlag(tmp, true);
            MultipleBinaryFlag testFlag2  = new MultipleBinaryFlag(tmp, false);
            string             testFlags1 = testFlag1.ToString() + "\r\n" + testFlag2.ToString();
            string             testFlags2 = testFlag2.ToString() + "\r\n" + testFlag1.ToString();

            Assert.AreEqual(testFlags1, BaseFileWorker.ReadAll(inputFileMultiple));
            Assert.AreNotEqual(testFlags2, BaseFileWorker.ReadAll(inputFileMultiple));
        }
示例#15
0
        public void TestWriteToString2()
        {
            ulong tmp = 8;
            MultipleBinaryFlag testFlag = new MultipleBinaryFlag(tmp, false);

            Assert.IsTrue(BaseFileWorker.Write(testFlag.ToString(), outputFile));
        }
示例#16
0
        public void GetFlagTest()
        {
            MultipleBinaryFlag FlagTest1 = new MultipleBinaryFlag(3, false);

            FlagTest1.SetFlag(0);
            FlagTest1.SetFlag(2);
            connectionWithDB.GetFlag(7, out string flagView1, out bool?flagValue1);
            Assert.AreEqual(flagView1, FlagTest1.ToString());
            Assert.AreEqual(flagValue1, FlagTest1.GetFlag());

            MultipleBinaryFlag FlagTest2 = new MultipleBinaryFlag(6, true);

            connectionWithDB.GetFlag(3, out string flagView2, out bool?flagValue2);
            Assert.AreEqual(flagView2, FlagTest2.ToString());
            Assert.AreEqual(flagValue2, FlagTest2.GetFlag());


            MultipleBinaryFlag FlagTest3 = new MultipleBinaryFlag(6, false);

            connectionWithDB.GetFlag(3, out string flagView3, out bool?flagValue3);
            Assert.AreNotEqual(flagView3, FlagTest3.ToString());
            Assert.AreNotEqual(flagValue3, FlagTest3.GetFlag());

            MultipleBinaryFlag FlagTest4 = new MultipleBinaryFlag(33, false);

            FlagTest4.SetFlag(32);
            connectionWithDB.GetFlag(5, out string flagView4, out bool?flagValue4);
            Assert.AreNotEqual(flagView4, FlagTest4.ToString());
            Assert.AreEqual(flagValue4, FlagTest4.GetFlag());
        }
示例#17
0
        public void testGetFlagWithSet(ulong length, bool initValue)
        {
            var mbf = new MultipleBinaryFlag(length, initValue);

            var rand = new Random();

            for (int i = 0, j = 0; i < (int)length && j < (int)length; i = rand.Next(i + 1, (int)length + 1), j = rand.Next(j + 1, (int)length + 1))
            {
                mbf.SetFlag((ulong)i);
                mbf.ResetFlag((ulong)i);
            }
            string flagView  = mbf.ToString();
            bool   flagValue = mbf.GetFlag();


            string flagViewAfterDB  = "";
            bool?  flagValueAfterDB = false;

            flagpoleDatabase.AddFlag(flagView, flagValue);
            bool isAdded = flagpoleDatabase.GetFlag(1, out flagViewAfterDB, out flagValueAfterDB);

            Assert.True(isAdded);
            Assert.Equal(flagView, flagViewAfterDB);
            Assert.Equal(flagValue, flagValueAfterDB);
            flagpoleDatabase.ExecSql("delete from MultipleBinaryFlags; DBCC CHECKIDENT (MultipleBinaryFlags, RESEED, 0);");
        }
示例#18
0
        public void TestFlagLength()
        {
            ulong tmp = 42069;
            MultipleBinaryFlag test1 = new MultipleBinaryFlag(tmp, true);

            Assert.Equals(tmp, test1.ToString().Length);
        }
        public void Test_Add_MinFlag_InitialValueFalse()
        {
            var flag   = new MultipleBinaryFlag(2, false);
            var result = _databaseConnection.AddFlag(flag.ToString(), (bool)flag.GetFlag());

            Assert.IsTrue(result);
        }
示例#20
0
        public void reset0Test()
        {
            ulong length            = 10;
            MultipleBinaryFlag flag = new MultipleBinaryFlag(length);

            flag.ResetFlag(0);
            Assert.Equal("FTTTTTTTTT", flag.ToString());
        }
示例#21
0
        public void TestReadLinesMultiple()
        {
            /*
             *  Input file contains
             *  'TTTTTTTT'
             *  'FFFFFFFF'
             */
            ulong tmp = 8;
            MultipleBinaryFlag testFlag1 = new MultipleBinaryFlag(tmp, true);
            MultipleBinaryFlag testFlag2 = new MultipleBinaryFlag(tmp, false);

            string[] input = BaseFileWorker.ReadLines(inputFileMultiple);
            Assert.AreEqual(testFlag1.ToString(), input[0]);
            Assert.AreEqual(testFlag2.ToString(), input[1]);
            Assert.AreNotEqual(testFlag2.ToString(), input[0]);
            Assert.AreNotEqual(testFlag1.ToString(), input[1]);
        }
示例#22
0
        public void set0Test()
        {
            ulong length            = 10;
            MultipleBinaryFlag flag = new MultipleBinaryFlag(length, false);

            flag.SetFlag(0);
            Assert.Equal("TFFFFFFFFF", flag.ToString());
        }
示例#23
0
        public void shouldReturnIfFlagObjIsNull_SetFlag(ulong lenght, bool initValue, ulong position)
        {
            var obj = new MultipleBinaryFlag(lenght, initValue);

            obj.Dispose();
            obj.SetFlag(position);
            Assert.Null(obj.ToString());
        }
示例#24
0
        public void TestAddFlagFalse(ulong length)
        {
            MultipleBinaryFlag mbf = new MultipleBinaryFlag(length, false);
            bool actual            = mbf.GetFlag();

            Assert.True(flagDatabaseUtils.AddFlag(mbf.ToString(), actual));
            flagDatabaseUtils.ExecSql("DELETE FROM dbo.MultipleBinaryFlags");
        }
示例#25
0
        public void Dispose()
        {
            var flag = new MultipleBinaryFlag(9);

            flag.Dispose();

            Assert.Null(flag.ToString());
        }
示例#26
0
        public void ToStringWithResetFlagTest()
        {
            MultipleBinaryFlag tmp = new MultipleBinaryFlag(10);

            tmp.ResetFlag(4);
            tmp.ResetFlag(7);
            Assert.Equal("TTTTFTTFTT", tmp.ToString());
        }
示例#27
0
        public void TestAddFlagFalse()
        {
            MultipleBinaryFlag bFlag    = new MultipleBinaryFlag(10, false);
            string             flagView = bFlag.ToString();
            bool flagValue = bFlag.GetFlag();

            Assert.True(flagpoleDB.AddFlag(flagView, flagValue));
        }
示例#28
0
        public void disposeSmallTest()
        {
            ulong length            = 10;
            MultipleBinaryFlag flag = new MultipleBinaryFlag(length);

            flag.Dispose();
            Assert.NotEqual("TTTTTTTTTT", flag.ToString());
        }
示例#29
0
        public void AddFlag_GetFlag(ulong num, Boolean val)
        {
            databaseFixture.index++;
            var     binaryFlag = new MultipleBinaryFlag(num, val);
            var     flagView   = binaryFlag.ToString();
            var     flag       = binaryFlag.GetFlag();
            var     boolean    = binaryFlag.GetFlag() ?? false;
            Boolean res        = databaseFixture.database.AddFlag(binaryFlag.ToString(), boolean);

            Assert.True(res);

            Boolean res2 = databaseFixture.database.GetFlag(databaseFixture.index, out flagView, out flag);

            Assert.True(res2);
            Assert.Equal(flagView, binaryFlag.ToString());
            Assert.Equal(flag, binaryFlag.GetFlag());
        }
示例#30
0
        public void SetFlagRangeTest(ulong length, string expected)
        {
            var binaryFlag = new MultipleBinaryFlag(length, false);

            binaryFlag.SetFlag(0);
            binaryFlag.SetFlag(2);
            Assert.Equal(binaryFlag.ToString(), expected);
        }