public void Call_For_Data_When_Constructed()
        {
            // Arrange
            var dataReader = new FakeReader();
            var viewModel  = new SidebarViewModel(dataReader);

            // Assert
            Assert.AreEqual(true, viewModel.FetchDataOnConstruction);
        }
예제 #2
0
 public void FewInt() => TimeRunner.Run(async(time, th) =>
 {
     var reader = new FakeReader <int>(th)
     {
         0, 1, 2, 3
     };
     using (var db = new Db <int>(th, reader, disableWatch: true))
     {
         await db.InitialiseTask.ConfigureAwait(th);
         Assert.Equal(new [] { 2, 3 }, db.Where(x => x >= 2).ToImmutableArray());
     }
 });
        public void FilterStockSymbols_Are_Filtered()
        {
            //Arrange
            IStockReader     dataReader = new FakeReader();
            SidebarViewModel viewModel  = new SidebarViewModel(dataReader);

            //Act
            viewModel.FilterStockSymbols("abb");

            //Assert
            Assert.IsNotNull(viewModel.FilteredStocks);
        }
        public void SidebarViewModel_onStart_Gets_FilteredStocks()
        {
            // Arrange
            IStockReader     dataReader = new FakeReader();
            SidebarViewModel viewModel  = new SidebarViewModel(dataReader);

            Thread.Sleep(1000);

            // Assert
            Assert.IsNotNull(viewModel.FilteredStocks);
            Assert.AreEqual(2, viewModel.FilteredStocks.Count);
        }
예제 #5
0
        public void Stocks_loaded_when_class_constructed()
        {
            // Arrange
            var reader    = new FakeReader();
            var viewModel = new StockViewViewModel("abb", reader);

            // Act
            Thread.Sleep(1000);

            // Assert
            Assert.IsNotNull(viewModel.Stock);
        }
예제 #6
0
 public void FirstOrDefault() => TimeRunner.Run(async(time, th) =>
 {
     var reader = new FakeReader <int>(th)
     {
         0, 1, 2, 3
     };
     using (var db = new Db <int>(th, reader))
     {
         await db.InitialiseTask.ConfigureAwait(th);
         Assert.Equal(0, db.FirstOrDefault());
         Assert.Null(db.Take(0).FirstOrDefault());
     }
 });
        public void Read_CorrectValuesDataAndCountValuesNoEquals3_ThrowInvalidDataFotParametersException(string dataLine1, string dataLine2, string dataLine3)
        {
            // arrange
            var data = new List <string> {
                dataLine1, dataLine2, dataLine3
            };
            var fakeReader = new FakeReader(data);

            // act and assert
            Assert.Catch <InvalidDataFotParametersException>(() =>
            {
                fakeReader.Read();
            });
        }
        public void Read_InvalidData_ThrowInvalidDataFotParametersException(string dataLine)
        {
            // arrange
            var data = new List <string> {
                dataLine
            };
            var fakeReader = new FakeReader(data);

            // act and assert
            Assert.Catch <InvalidDataFotParametersException>(() =>
            {
                fakeReader.Read();
            });
        }
예제 #9
0
        public void ShouldPrintOutGameOverAndWaitForInput()
        {
            //Arrange
            FakeWriter        fakeWriter = new FakeWriter();
            FakeReader        fakeReader = new FakeReader(Environment.NewLine);
            ConsoleGameEnding subject    = new ConsoleGameEnding(fakeReader, fakeWriter);

            //Act
            subject.Display();

            //Assert
            fakeWriter.AssertLinesWritten("Game over", "Press Enter to Exit");
            fakeReader.AssertReadLineInvoked();
        }
        public void SettingsSourceAllowsResolvingOfSettingClasses()
        {
            var builder = new ContainerBuilder();
            var reader = new FakeReader();
            builder.RegisterInstance(reader).As<ISettingsReader>();
            builder.RegisterSource(new SettingsSource());

            var container = builder.Build();
            var fakeSettings = new FakeSettings();
            reader.Settings = fakeSettings;

            var resolvedSettings = container.Resolve<FakeSettings>();
            Assert.AreSame(fakeSettings, resolvedSettings);
            Assert.IsTrue(reader.WasCalled);
        }
        public void Read_CorrectData_DoesNotThrowCorrectParameters(string dataLine, double a, double b, double c)
        {
            // arrange
            var data = new List <string> {
                dataLine
            };
            var fakeReader = new FakeReader(data);

            // act
            var paramsEquation = fakeReader.Read().First();

            // assert
            Assert.AreEqual(a, paramsEquation.A);
            Assert.AreEqual(b, paramsEquation.B);
            Assert.AreEqual(c, paramsEquation.C);
        }
예제 #12
0
        public void ShouldRunFirstValidInput()
        {
            //Arrange
            FakeRegexBookEnd fakeRegexBookEnd = new FakeRegexBookEnd.Builder().IsMatch(Bool.True).Build();
            FakeWriter       fakeWriter       = new FakeWriter();
            FakeReader       fakeReader       = new FakeReader("A", "B", "C");
            FakeValidInputResponseAction <string> fakeValidInputResponseAction = new FakeValidInputResponseAction <string> .Builder().Response("A").Build();

            ValidResponse <string> subject = new ValidResponse <string>(fakeRegexBookEnd, new[] { "", "", "" }, fakeValidInputResponseAction, fakeWriter, fakeReader);

            //Act
            string input = subject.Response();

            //Assert
            fakeRegexBookEnd.AssertIsMatchInvokedCountMatches(1);
            fakeValidInputResponseAction.AssertResponseInvokedWith("A");
        }
        public void SettingsSourceAllowsResolvingOfSettingClasses()
        {
            var builder = new ContainerBuilder();
            var reader = new FakeReader();
            var injector = new FakeInjector();
            builder.RegisterInstance(reader).As<ISettingsReader>();
            builder.RegisterInstance(injector).As<ISettingsInjector>();
            builder.RegisterSource(new SettingsSource());

            var container = builder.Build();
            var fakeSettings = new NameValueCollection();
            reader.Collection = fakeSettings;

            var resolvedSettings = container.Resolve<FakeSettings>();
            
            Assert.IsNotNull(resolvedSettings);
            Assert.IsTrue(injector.WasCalled);
            Assert.IsNotNull(injector.Settings, "Settings sources were not passed to injector");
            Assert.IsTrue(injector.Settings.Contains(reader));
        }
예제 #14
0
            public override OracleTableJournal Given()
            {
                dbConnection = Substitute.For <IDbConnection>();
                dbCommand    = Substitute.For <IDbCommand>();
                dbCommand.ExecuteScalar().Returns(1);
                log = new CaptureLogsLogger();

                var table = new DataTable();

                table.Columns.Add("column", Type.GetType("System.String"));
                var row = table.NewRow();

                row["column"] = "id";
                table.Rows.Add(row);
                var fakeReader = new FakeReader(table);

                dbCommand.ExecuteReader().Returns(fakeReader);
                dbConnection.CreateCommand().Returns(dbCommand);

                var connectionManager = new TestConnectionManager(dbConnection);
                var versionTracker    = new OracleTableJournal(() => connectionManager, () => log, null, "history");

                return(versionTracker);
            }
        /// <summary>
        /// Fills a <c>Map</c> with <see cref="WeightedSpanTerm"/>s using the terms from the supplied <c>Query</c>.
        /// </summary>
        /// <param name="query">Query to extract Terms from</param>
        /// <param name="terms">Map to place created WeightedSpanTerms in</param>
        private void Extract(Query query, IDictionary <String, WeightedSpanTerm> terms)
        {
            if (query is BooleanQuery)
            {
                BooleanClause[] queryClauses = ((BooleanQuery)query).GetClauses();

                for (int i = 0; i < queryClauses.Length; i++)
                {
                    if (!queryClauses[i].IsProhibited)
                    {
                        Extract(queryClauses[i].Query, terms);
                    }
                }
            }
            else if (query is PhraseQuery)
            {
                PhraseQuery phraseQuery      = ((PhraseQuery)query);
                Term[]      phraseQueryTerms = phraseQuery.GetTerms();
                SpanQuery[] clauses          = new SpanQuery[phraseQueryTerms.Length];
                for (int i = 0; i < phraseQueryTerms.Length; i++)
                {
                    clauses[i] = new SpanTermQuery(phraseQueryTerms[i]);
                }
                int   slop      = phraseQuery.Slop;
                int[] positions = phraseQuery.GetPositions();
                // add largest position increment to slop
                if (positions.Length > 0)
                {
                    int lastPos    = positions[0];
                    int largestInc = 0;
                    int sz         = positions.Length;
                    for (int i = 1; i < sz; i++)
                    {
                        int pos = positions[i];
                        int inc = pos - lastPos;
                        if (inc > largestInc)
                        {
                            largestInc = inc;
                        }
                        lastPos = pos;
                    }
                    if (largestInc > 1)
                    {
                        slop += largestInc;
                    }
                }

                bool inorder = slop == 0;

                SpanNearQuery sp = new SpanNearQuery(clauses, slop, inorder);
                sp.Boost = query.Boost;
                ExtractWeightedSpanTerms(terms, sp);
            }
            else if (query is TermQuery)
            {
                ExtractWeightedTerms(terms, query);
            }
            else if (query is SpanQuery)
            {
                ExtractWeightedSpanTerms(terms, (SpanQuery)query);
            }
            else if (query is FilteredQuery)
            {
                Extract(((FilteredQuery)query).Query, terms);
            }
            else if (query is DisjunctionMaxQuery)
            {
                foreach (var q in ((DisjunctionMaxQuery)query))
                {
                    Extract(q, terms);
                }
            }
            else if (query is MultiTermQuery && expandMultiTermQuery)
            {
                MultiTermQuery mtq = ((MultiTermQuery)query);
                if (mtq.RewriteMethod != MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE)
                {
                    mtq = (MultiTermQuery)mtq.Clone();
                    mtq.RewriteMethod = MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE;
                    query             = mtq;
                }
                FakeReader fReader = new FakeReader();
                MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE.Rewrite(fReader, mtq);
                if (fReader.Field != null)
                {
                    IndexReader ir = GetReaderForField(fReader.Field);
                    Extract(query.Rewrite(ir), terms);
                }
            }
            else if (query is MultiPhraseQuery)
            {
                MultiPhraseQuery mpq        = (MultiPhraseQuery)query;
                IList <Term[]>   termArrays = mpq.GetTermArrays();
                int[]            positions  = mpq.GetPositions();
                if (positions.Length > 0)
                {
                    int maxPosition = positions[positions.Length - 1];
                    for (int i = 0; i < positions.Length - 1; ++i)
                    {
                        if (positions[i] > maxPosition)
                        {
                            maxPosition = positions[i];
                        }
                    }

                    var disjunctLists     = new List <SpanQuery> [maxPosition + 1];
                    int distinctPositions = 0;

                    for (int i = 0; i < termArrays.Count; ++i)
                    {
                        Term[]           termArray = termArrays[i];
                        List <SpanQuery> disjuncts = disjunctLists[positions[i]];
                        if (disjuncts == null)
                        {
                            disjuncts = (disjunctLists[positions[i]] = new List <SpanQuery>(termArray.Length));
                            ++distinctPositions;
                        }
                        for (int j = 0; j < termArray.Length; ++j)
                        {
                            disjuncts.Add(new SpanTermQuery(termArray[j]));
                        }
                    }

                    int         positionGaps = 0;
                    int         position     = 0;
                    SpanQuery[] clauses      = new SpanQuery[distinctPositions];
                    for (int i = 0; i < disjunctLists.Length; ++i)
                    {
                        List <SpanQuery> disjuncts = disjunctLists[i];
                        if (disjuncts != null)
                        {
                            clauses[position++] = new SpanOrQuery(disjuncts.ToArray());
                        }
                        else
                        {
                            ++positionGaps;
                        }
                    }

                    int  slop    = mpq.Slop;
                    bool inorder = (slop == 0);

                    SpanNearQuery sp = new SpanNearQuery(clauses, slop + positionGaps, inorder);
                    sp.Boost = query.Boost;
                    ExtractWeightedSpanTerms(terms, sp);
                }
            }
        }