/tst/org/diffkit/diff/engine/tst/TestColumnComparison.groovy

http://diffkit.googlecode.com/ · Groovy · 76 lines · 42 code · 16 blank · 18 comment · 6 complexity · 76ff64f4eea2a9dd5a15e52f4685fce9 MD5 · raw file

  1. /**
  2. * Copyright 2010-2011 Joseph Panico
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.diffkit.diff.engine.tst
  17. import org.diffkit.diff.diffor.DKEqualsDiffor;
  18. import org.diffkit.diff.engine.DKColumnComparison
  19. import org.diffkit.diff.engine.DKColumnModel;
  20. import groovy.util.GroovyTestCase;
  21. /**
  22. * @author jpanico
  23. */
  24. public class TestColumnComparison extends GroovyTestCase {
  25. public void testDiff(){
  26. Object[] lhs = ['value1', 'value2', 3, 'value4']
  27. Object[] rhs = ['value0', 'value1', 3, 'value4']
  28. DKColumnModel lhColumnModel = [0, 'column1', DKColumnModel.Type.STRING]
  29. DKColumnModel rhColumnModel = [1, 'column2', DKColumnModel.Type.STRING]
  30. DKColumnComparison columnPlan = [lhColumnModel, rhColumnModel, DKEqualsDiffor.instance]
  31. assert ! columnPlan.isDiff(lhs, rhs, null)
  32. lhColumnModel = [0, 'column1', DKColumnModel.Type.STRING]
  33. rhColumnModel = [0, 'column1', DKColumnModel.Type.STRING]
  34. columnPlan = [lhColumnModel, rhColumnModel, DKEqualsDiffor.instance]
  35. assert columnPlan.isDiff(lhs, rhs, null)
  36. lhColumnModel = [2, 'column3', DKColumnModel.Type.INTEGER]
  37. rhColumnModel = [2, 'column3', DKColumnModel.Type.INTEGER]
  38. columnPlan = [lhColumnModel, rhColumnModel, DKEqualsDiffor.instance]
  39. assert !columnPlan.isDiff(lhs, rhs, null)
  40. }
  41. public void testGet(){
  42. Object[] lhs = ['value1', 'value2', 3, 'value4']
  43. Object[] rhs = ['value0', 'value1', 3, 'value4']
  44. DKColumnModel lhColumnModel = [0, 'column1', DKColumnModel.Type.STRING]
  45. DKColumnModel rhColumnModel = [1, 'column2', DKColumnModel.Type.STRING]
  46. DKColumnComparison columnPlan = [lhColumnModel, rhColumnModel, DKEqualsDiffor.instance]
  47. assert columnPlan.getLHValue(lhs) == 'value1'
  48. assert columnPlan.getRHValue(rhs) == 'value1'
  49. lhColumnModel = [0, 'column1', DKColumnModel.Type.STRING]
  50. rhColumnModel = [0, 'column1', DKColumnModel.Type.STRING]
  51. columnPlan = [lhColumnModel, rhColumnModel, DKEqualsDiffor.instance]
  52. assert columnPlan.getLHValue(lhs) == 'value1'
  53. assert columnPlan.getRHValue(rhs) == 'value0'
  54. lhColumnModel = [2, 'column3', DKColumnModel.Type.INTEGER]
  55. rhColumnModel = [2, 'column3', DKColumnModel.Type.INTEGER]
  56. columnPlan = [lhColumnModel, rhColumnModel, DKEqualsDiffor.instance]
  57. assert columnPlan.getLHValue(lhs) == 3
  58. assert columnPlan.getRHValue(rhs) == 3
  59. }
  60. }