public void SeAdicionarOrdenacaoNaQueryFakeAVariavelDeveSerDefinidaCorretamente() { var builder = new QueryFakeBuilder(); builder.OrderBys .Should() .NotBeNull(); builder.OrderBys .Should() .HaveCount(0); builder.AdicionarOrdem("lista de campos qualquer"); builder.OrderBys .Should() .HaveCount(1); builder.OrderBys[0] .Should() .Be("lista de campos qualquer"); }
public void SeGerarScriptQueVerificaExistenciaNaQueryFakeSemDicionarioDeveGerarScriptCorretamente() { var builder = new QueryFakeBuilder(); builder.DefinirTabela("Tabela"); builder.GerarScriptExistencia(null) .Should() .Be("select top 1 1 from[Tabela]"); builder.DefinirLimite(15); builder.GerarScriptExistencia(null) .Should() .Be("select top 1 1 from[Tabela]"); builder.DefinirLimite(20); builder.AdicionarRelacionamento("inner join Relacionamento on Tabela.campo = Relacionamento.campo"); builder.AdicionarRelacionamento("left join Parente on Tabela.Relacao = Parente.Relacao"); builder.GerarScriptExistencia(null) .Should() .Be("select top 1 1 from[Tabela]" + "inner join Relacionamento on Tabela.campo = Relacionamento.campo " + "left join Parente on Tabela.Relacao = Parente.Relacao "); builder.DefinirLimite(25); builder.AdicionarCondicao("campoA", (int)Operadores.Igual, 1); builder.AdicionarCondicao("campoB", (int)Operadores.Igual, 2); builder.GerarScriptExistencia(null) .Should() .Be("select top 1 1 from[Tabela]" + "inner join Relacionamento on Tabela.campo = Relacionamento.campo " + "left join Parente on Tabela.Relacao = Parente.Relacao " + "where([campoA]=@_p0)and([campoB]=@_p1) "); builder.DefinirLimite(30); builder.AdicionarAgrupamento("Tabela.CampoX"); builder.AdicionarAgrupamento("Tabela.CampoY"); builder.AdicionarAgrupamento("Tabela.CampoZ"); builder.GerarScriptExistencia(null) .Should() .Be("select top 1 1 from[Tabela]" + "inner join Relacionamento on Tabela.campo = Relacionamento.campo " + "left join Parente on Tabela.Relacao = Parente.Relacao " + "where([campoA]=@_p0)and([campoB]=@_p1) " + "group by Tabela.CampoX,Tabela.CampoY,Tabela.CampoZ "); builder.DefinirLimite(35); builder.AdicionarCondicaoAgrupamento("Count(*)>0"); builder.AdicionarCondicaoAgrupamento("Max(Tabela.Quantidade)>1000"); builder.GerarScriptExistencia(null) .Should() .Be("select top 1 1 from[Tabela]" + "inner join Relacionamento on Tabela.campo = Relacionamento.campo " + "left join Parente on Tabela.Relacao = Parente.Relacao " + "where([campoA]=@_p0)and([campoB]=@_p1) " + "group by Tabela.CampoX,Tabela.CampoY,Tabela.CampoZ " + "having(Count(*)>0)and(Max(Tabela.Quantidade)>1000) "); builder.AdicionarOrdemDescendente("Tabela.OrdemB"); builder.AdicionarOrdem("Tabela.OrdemA"); builder.GerarScriptExistencia(null) .Should() .Be("select top 1 1 from[Tabela]" + "inner join Relacionamento on Tabela.campo = Relacionamento.campo " + "left join Parente on Tabela.Relacao = Parente.Relacao " + "where([campoA]=@_p0)and([campoB]=@_p1) " + "group by Tabela.CampoX,Tabela.CampoY,Tabela.CampoZ " + "having(Count(*)>0)and(Max(Tabela.Quantidade)>1000) " + "order by Tabela.OrdemB DESC,Tabela.OrdemA "); }