public void FragmentedQuery_AppendFragment_NoFragment_Success() { var query = new FragmentedQuery(); query.Name = "unit.test.query"; // Set up the fragment query.SQL = "before"; var fragments = new Dictionary <string, QueryFragment>(); fragments["unit.test.fragment"] = new QueryFragment { SQL = "the fragment" }; fragments["unit.test.fragment"].Parameters["unit.test.parameter"] = DbType.String; var sql = new StringBuilder(); // Assemble this fragment query.AppendFragment(QueryFragmentType.From, sql, fragments); // Check the results Assert.AreEqual(String.Empty, sql.ToString()); Assert.AreEqual(0, query.Parameters.Count); }
public void FragmentedQuery_AppendFragment_WithFragmentAndAfter_Success() { var query = new FragmentedQuery(); query.Name = "unit.test.query"; // Set up the fragment query.SQL = "before"; query.Fragments[QueryFragmentType.Where] = "unit.test.fragment"; query.AfterFragment[QueryFragmentType.Where] = "afterwards"; var fragments = new Dictionary <string, QueryFragment>(); fragments["unit.test.fragment"] = new QueryFragment { SQL = "the fragment" }; fragments["unit.test.fragment"].Parameters["unit.test.parameter"] = DbType.String; var sql = new StringBuilder(); // Assemble this fragment query.AppendFragment(QueryFragmentType.Where, sql, fragments); // Check the results Assert.AreEqual(" the fragment afterwards", sql.ToString()); Assert.AreEqual(1, query.Parameters.Count); Assert.IsTrue(query.Parameters.ContainsKey("unit.test.parameter")); Assert.AreEqual(DbType.String, query.Parameters["unit.test.parameter"]); }
public void FragmentedQuery_AppendFragment_NonExistentFragment_Failure() { var query = new FragmentedQuery(); query.Name = "unit.test.query"; // Set up the fragment query.SQL = "before"; query.Fragments[QueryFragmentType.Where] = "unit.test.fragment"; query.Fragments[QueryFragmentType.OrderBy] = "non.existent.fragment"; var fragments = new Dictionary <string, QueryFragment>(); fragments["unit.test.fragment"] = new QueryFragment { SQL = "the fragment" }; fragments["unit.test.fragment"].Parameters["unit.test.parameter"] = DbType.String; try { query.AppendFragment(QueryFragmentType.OrderBy, new StringBuilder(), fragments); Assert.Fail("AppendFragment should have thrown an exeception for a non-existent fragment"); } catch (KeyNotFoundException exception) { Assert.AreEqual( "Unable to find OrderBy query fragment non.existent.fragment defined in query unit.test.query", exception.Message); } }
public void FragmentedQuery_Fragments_Empty_Success() { var query = new FragmentedQuery(); Assert.IsNotNull(query.Fragments, "Fragment dictionary should not be null"); Assert.IsNotNull(query.AfterFragment, "After Fragment dictionary should not be null"); Assert.AreEqual(0, query.Fragments.Count, "Fragment dictionary should be empty"); Assert.AreEqual(0, query.AfterFragment.Count, "After Fragment dictionary should be empty"); }
private FragmentedQuery AFragmentedQuery() { var query = new FragmentedQuery { SQL = "SELECT" }; query.Fragments.Add(QueryFragmentType.From, "test.from"); query.AfterFragment.Add(QueryFragmentType.From, "after_from"); return(query); }
/// <summary> /// Get a fragmented query with all fragments used /// </summary> /// <returns> /// A fragmented query with all fragments used /// </returns> private FragmentedQuery AllFragmentsUsed() { var query = new FragmentedQuery(); query.Fragments[QueryFragmentType.Select] = "unit.test.select"; query.Fragments[QueryFragmentType.From] = "unit.test.from"; query.Fragments[QueryFragmentType.Where] = "unit.test.where"; query.Fragments[QueryFragmentType.OrderBy] = "unit.test.orderby"; query.Fragments[QueryFragmentType.Insert] = "unit.test.insert"; query.Fragments[QueryFragmentType.Update] = "unit.test.update"; query.Fragments[QueryFragmentType.Delete] = "unit.test.delete"; query.AfterFragment[QueryFragmentType.Select] = "after-select"; query.AfterFragment[QueryFragmentType.Insert] = "after-insert"; query.AfterFragment[QueryFragmentType.Update] = "after-update"; query.AfterFragment[QueryFragmentType.Delete] = "after-delete"; query.AfterFragment[QueryFragmentType.From] = "after-from"; query.AfterFragment[QueryFragmentType.Where] = "after-where"; query.AfterFragment[QueryFragmentType.OrderBy] = "after-orderby"; return(query); }