conflict 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,17 +43,18 @@ class NegativeTest < Test::Unit::TestCase
43
43
  end
44
44
 
45
45
  def test_diff_parser
46
+
47
+ url = "http://foo.com"
48
+ path = "."
49
+
50
+ parser = DiffParser::new({:ttl=>Conflict::TTL})
46
51
 
47
- parser = DiffParser::new({:url=>"http://foo.com", :path=>".", :ttl=>Conflict::TTL})
48
-
49
- assert_raise { parser.parse "OK", nil }
50
- assert_raise { parser.parse "OK", "" }
51
- assert_raise { parser.parse nil, "OK" }
52
- assert_raise { parser.parse "", "OK" }
52
+ assert_raise { parser.parse "OK", nil, url, path }
53
+ assert_raise { parser.parse "OK", "", url, path }
54
+ assert_raise { parser.parse nil, "OK", url, path }
55
+ assert_raise { parser.parse "", "OK", url, path }
53
56
  assert_raise { DiffParser::new(nil) }
54
57
  assert_raise { DiffParser::new({}) }
55
- assert_raise { DiffParser::new({:url=>nil}) }
56
- assert_raise { DiffParser::new({:url=>""}) }
57
58
  end
58
59
 
59
60
  def test_info_parser
@@ -104,4 +105,4 @@ class NegativeTest < Test::Unit::TestCase
104
105
 
105
106
  end
106
107
 
107
- end
108
+ end
data/test/parser_test.rb CHANGED
@@ -22,7 +22,7 @@ require File.dirname(__FILE__) + '/common.rb'
22
22
 
23
23
  class ParserTest < Test::Unit::TestCase
24
24
  include ConflictConstants
25
- COMMON_PROPERTIES = {:path=>".", :ttl=>Conflict::TTL}
25
+ COMMON_PROPERTIES = {:ttl=>Conflict::TTL}
26
26
 
27
27
  def test_info_parser
28
28
 
@@ -39,15 +39,15 @@ class ParserTest < Test::Unit::TestCase
39
39
  def test_diff_parser_with_info
40
40
 
41
41
  diff = File::new(STOMP_1_DIFF_PATH).to_s
42
- parser = DiffParser::new({:url=>STOMP_1_URL}.merge(COMMON_PROPERTIES))
43
- events = parser.parse diff, CLIENT_ONE
42
+ parser = DiffParser::new(COMMON_PROPERTIES)
43
+ events = parser.parse diff, CLIENT_ONE, STOMP_1_URL, "."
44
44
 
45
45
  assert_equal 1, events.size
46
46
  first_event = events[0]
47
47
 
48
48
  diff = File::new(STOMP_2_DIFF_PATH).to_s
49
- parser = DiffParser::new({:url=>STOMP_2_URL}.merge(COMMON_PROPERTIES))
50
- events = parser.parse diff, CLIENT_ONE
49
+ parser = DiffParser::new(COMMON_PROPERTIES)
50
+ events = parser.parse diff, CLIENT_ONE, STOMP_2_URL, "."
51
51
 
52
52
  assert_equal 1, events.size
53
53
  second_event = events[0]
@@ -57,9 +57,9 @@ class ParserTest < Test::Unit::TestCase
57
57
  def test_diff_parser_two_changes_same_file
58
58
 
59
59
  url = 'https://svn.apache.org/repos/asf/myfaces/core/trunk/api/src/main/java/javax'
60
- parser = DiffParser::new({:url=>url}.merge(COMMON_PROPERTIES))
60
+ parser = DiffParser::new(COMMON_PROPERTIES)
61
61
  diff = File.new(DATA_DIR + 'apache_myfaces.diff.txt').to_s
62
- events = parser.parse diff, CLIENT_ONE
62
+ events = parser.parse diff, CLIENT_ONE, url, "."
63
63
 
64
64
  assert_equal 1, events.size
65
65
  assert events[0].eql?(Event::new(CLIENT_ONE, "changed", url + "/FacesServlet.java"))
@@ -68,9 +68,9 @@ class ParserTest < Test::Unit::TestCase
68
68
  def test_diff_parser_deleted_added_changed_in_same_patch
69
69
 
70
70
  url = 'http://activemessaging.googlecode.com/svn/trunk/plugins/activemessaging/lib'
71
- parser = DiffParser::new({:url=>url}.merge(COMMON_PROPERTIES))
71
+ parser = DiffParser::new(COMMON_PROPERTIES)
72
72
  diff = File.new(DATA_DIR + 'a13g.diff.txt').to_s
73
- events = parser.parse diff, CLIENT_ONE
73
+ events = parser.parse diff, CLIENT_ONE, url, "."
74
74
 
75
75
  assert_equal 3, events.size
76
76
  assert events[0].eql?(Event::new(CLIENT_ONE, "deleted", url + "/asqs.rb"))
@@ -81,18 +81,18 @@ class ParserTest < Test::Unit::TestCase
81
81
  def test_diff_parser_deleted_added_changed_in_different_files
82
82
 
83
83
  resource = CONFLICT_URL + '/test_data.txt'
84
- parser = DiffParser::new({:url=>CONFLICT_URL}.merge(COMMON_PROPERTIES))
84
+ parser = DiffParser::new(COMMON_PROPERTIES)
85
85
  added = File::new(DATA_DIR + "three/added.diff.txt").to_s
86
86
  deleted = File::new(DATA_DIR + "three/deleted.diff.txt").to_s
87
87
  changed = File::new(DATA_DIR + "three/changed.diff.txt").to_s
88
88
 
89
- events = parser.parse added, CLIENT_ONE
89
+ events = parser.parse added, CLIENT_ONE, CONFLICT_URL, "."
90
90
  assert events[0].eql?(Event::new(CLIENT_ONE, "added", resource))
91
91
 
92
- events = parser.parse deleted, CLIENT_ONE
92
+ events = parser.parse deleted, CLIENT_ONE, CONFLICT_URL, "."
93
93
  assert events[0].eql?(Event::new(CLIENT_ONE, "deleted", resource))
94
94
 
95
- events = parser.parse changed, CLIENT_ONE
95
+ events = parser.parse changed, CLIENT_ONE, CONFLICT_URL, "."
96
96
  assert events[0].eql?(Event::new(CLIENT_ONE, "changed", resource))
97
97
  end
98
- end
98
+ end
@@ -1,56 +1,56 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
-
18
- require 'test/unit'
19
- require 'conflict'
20
- include Conflict
21
-
22
- class RoundTripExpirationTest < Test::Unit::TestCase
23
- include ConflictConstants
24
-
25
- def test_expiration
26
-
27
- diff = File.new("./test/data/rails.diff.txt").to_s
28
- info = File.new("./test/data/rails.info.txt").to_s
29
- ttl = 0
30
-
31
- cfg = {:port=>86}
32
- thread = Thread.new do
33
- Server::new(cfg.merge({:ttl=>ttl})).start
34
- end
35
-
36
- client_one = Client::new({:id=>CLIENT_ONE}.merge(cfg))
37
- client_two = Client::new({:id=>CLIENT_TWO}.merge(cfg))
38
-
39
- conflicts = client_one.diff diff, info
40
- assert_equal 0, conflicts.size
41
- assert_equal 1, client_one.count
42
-
43
- sleep(ttl + 1) # let it expire
44
-
45
- assert_equal 1, client_one.count, "server will not dump the event until next request"
46
-
47
- conflicts = client_two.diff diff, info
48
- assert_equal 0, conflicts.size, "should not conflict w/ expired event"
49
- assert_equal 1, client_one.count, "expired event should be gone"
50
-
51
- thread.kill
52
- thread.join(5)
53
-
54
- end
55
-
56
- end
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ require 'test/unit'
19
+ require 'conflict'
20
+ include Conflict
21
+
22
+ class RoundTripExpirationTest < Test::Unit::TestCase
23
+ include ConflictConstants
24
+
25
+ def test_expiration
26
+
27
+ diff = File.new("./test/data/rails.diff.txt").to_s
28
+ info = File.new("./test/data/rails.info.txt").to_s
29
+ ttl = 0
30
+
31
+ cfg = {:port=>86}
32
+ thread = Thread.new do
33
+ Server::new(cfg.merge({:ttl=>ttl})).start
34
+ end
35
+
36
+ client_one = Client::new({:id=>CLIENT_ONE}.merge(cfg))
37
+ client_two = Client::new({:id=>CLIENT_TWO}.merge(cfg))
38
+
39
+ conflicts = client_one.diff diff, info
40
+ assert_equal 0, conflicts.size
41
+ assert_equal 1, client_one.count
42
+
43
+ sleep(ttl + 1) # let it expire
44
+
45
+ assert_equal 1, client_one.count, "server will not dump the event until next request"
46
+
47
+ conflicts = client_two.diff diff, info
48
+ assert_equal 0, conflicts.size, "should not conflict w/ expired event"
49
+ assert_equal 1, client_one.count, "expired event should be gone"
50
+
51
+ thread.kill
52
+ thread.join(5)
53
+
54
+ end
55
+
56
+ end
@@ -1,105 +1,105 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
-
18
- require 'test/unit'
19
- require 'conflict'
20
- include Conflict
21
-
22
- class RoundTripTest < Test::Unit::TestCase
23
- include ConflictConstants
24
- RESOURCE = "http://svn.rubyonrails.org/rails/trunk/release.rb"
25
-
26
- def setup
27
- @diff = File.new("./test/data/rails.diff.txt").to_s
28
- @info = File.new("./test/data/rails.info.txt").to_s
29
-
30
- @first = Event::new(CLIENT_ONE, "changed", RESOURCE)
31
- @second = Event::new(CLIENT_TWO, "changed", RESOURCE)
32
- @third = Event::new(CLIENT_THREE, "changed", RESOURCE)
33
-
34
- end
35
-
36
- def test_happy_path_conflict_accumalation
37
- happy_path_conflict_accumalation nil
38
- end
39
-
40
- def test_happy_path_conflict_accumalation_with_alternate_port_and_url
41
- happy_path_conflict_accumalation 81
42
- end
43
-
44
- private
45
- def happy_path_conflict_accumalation port
46
-
47
- cfg = {:port=>port}
48
- @thread = Thread.new do
49
- Server::new(cfg).start
50
- end
51
-
52
- client_one = Client::new({:id=>CLIENT_ONE}.merge(cfg))
53
- client_two = Client::new({:id=>CLIENT_TWO}.merge(cfg))
54
- client_three = Client::new({:id=>CLIENT_THREE}.merge(cfg))
55
-
56
- response = client_one.diff @diff, @info
57
- assert [].eql?(response)
58
- assert_equal 1, client_one.count
59
-
60
- response = client_two.diff(@diff, @info)
61
- assert [Conflict::Conflict.new(@second, @first)].eql?(response)
62
- assert_equal 2, client_one.count
63
-
64
- response = client_three.diff @diff, @info
65
- assert [Conflict::Conflict.new(@third, @first), Conflict::Conflict::new(@third, @second)].eql?(response)
66
- assert_equal 3, client_one.count
67
-
68
- response = client_one.resend
69
- assert [Conflict::Conflict.new(@first, @second), Conflict::Conflict::new(@first, @third)].eql?(response)
70
- assert_equal 3, client_one.count
71
-
72
- response = client_two.resend
73
- assert [Conflict::Conflict.new(@second, @third), Conflict::Conflict::new(@second, @first)].eql?(response)
74
- assert_equal 3, client_one.count
75
-
76
- response = client_three.revert @info
77
- assert [].eql?(response)
78
- assert_equal 2, client_one.count
79
-
80
- response = client_two.resend
81
- assert [Conflict::Conflict.new(@second, @first)].eql?(response)
82
- assert_equal 2, client_one.count
83
-
84
- response = client_one.resend
85
- assert [Conflict::Conflict.new(@first, @second)].eql?(response)
86
- assert_equal 2, client_one.count
87
-
88
- response = client_two.revert @info
89
- assert [].eql?(response)
90
- assert_equal 1, client_one.count
91
-
92
- response = client_one.resend
93
- assert [].eql?(response)
94
- assert_equal 1, client_one.count
95
-
96
- response = client_one.revert @info
97
- assert [].eql?(response)
98
- assert_equal 0, client_one.count
99
-
100
- @thread.kill
101
- @thread.join(5)
102
-
103
- end
104
-
105
- end
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ require 'test/unit'
19
+ require 'conflict'
20
+ include Conflict
21
+
22
+ class RoundTripTest < Test::Unit::TestCase
23
+ include ConflictConstants
24
+ RESOURCE = "http://svn.rubyonrails.org/rails/trunk/release.rb"
25
+
26
+ def setup
27
+ @diff = File.new("./test/data/rails.diff.txt").to_s
28
+ @info = File.new("./test/data/rails.info.txt").to_s
29
+
30
+ @first = Event::new(CLIENT_ONE, "changed", RESOURCE)
31
+ @second = Event::new(CLIENT_TWO, "changed", RESOURCE)
32
+ @third = Event::new(CLIENT_THREE, "changed", RESOURCE)
33
+
34
+ end
35
+
36
+ def test_happy_path_conflict_accumalation
37
+ happy_path_conflict_accumalation nil
38
+ end
39
+
40
+ def test_happy_path_conflict_accumalation_with_alternate_port_and_url
41
+ happy_path_conflict_accumalation 81
42
+ end
43
+
44
+ private
45
+ def happy_path_conflict_accumalation port
46
+
47
+ cfg = {:port=>port}
48
+ @thread = Thread.new do
49
+ Server::new(cfg).start
50
+ end
51
+
52
+ client_one = Client::new({:id=>CLIENT_ONE}.merge(cfg))
53
+ client_two = Client::new({:id=>CLIENT_TWO}.merge(cfg))
54
+ client_three = Client::new({:id=>CLIENT_THREE}.merge(cfg))
55
+
56
+ response = client_one.diff @diff, @info
57
+ assert [].eql?(response)
58
+ assert_equal 1, client_one.count
59
+
60
+ response = client_two.diff(@diff, @info)
61
+ assert [Conflict::Conflict.new(@second, @first)].eql?(response)
62
+ assert_equal 2, client_one.count
63
+
64
+ response = client_three.diff @diff, @info
65
+ assert [Conflict::Conflict.new(@third, @first), Conflict::Conflict::new(@third, @second)].eql?(response)
66
+ assert_equal 3, client_one.count
67
+
68
+ response = client_one.resend
69
+ assert [Conflict::Conflict.new(@first, @second), Conflict::Conflict::new(@first, @third)].eql?(response)
70
+ assert_equal 3, client_one.count
71
+
72
+ response = client_two.resend
73
+ assert [Conflict::Conflict.new(@second, @first), Conflict::Conflict::new(@second, @third)].eql?(response)
74
+ assert_equal 3, client_one.count
75
+
76
+ response = client_three.revert @info
77
+ assert [].eql?(response)
78
+ assert_equal 2, client_one.count
79
+
80
+ response = client_two.resend
81
+ assert [Conflict::Conflict.new(@second, @first)].eql?(response)
82
+ assert_equal 2, client_one.count
83
+
84
+ response = client_one.resend
85
+ assert [Conflict::Conflict.new(@first, @second)].eql?(response)
86
+ assert_equal 2, client_one.count
87
+
88
+ response = client_two.revert @info
89
+ assert [].eql?(response)
90
+ assert_equal 1, client_one.count
91
+
92
+ response = client_one.resend
93
+ assert [].eql?(response)
94
+ assert_equal 1, client_one.count
95
+
96
+ response = client_one.revert @info
97
+ assert [].eql?(response)
98
+ assert_equal 0, client_one.count
99
+
100
+ @thread.kill
101
+ @thread.join(5)
102
+
103
+ end
104
+
105
+ end
@@ -1,67 +1,67 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
-
18
- require 'test/unit'
19
- require 'conflict'
20
- include Conflict
21
-
22
- class RoundTripMultiDiffTest < Test::Unit::TestCase
23
- include ConflictConstants
24
-
25
- def test_dev_with_no_conflicts
26
-
27
- @cfg = {:port=>85}
28
- @thread = Thread.new do
29
- Server::new(@cfg).start
30
- end
31
-
32
- rails_diff = File.new("./test/data/rails.diff.txt").to_s
33
- rails_info = File.new("./test/data/rails.info.txt").to_s
34
- stomp_one_diff = File::new(STOMP_1_DIFF_PATH).to_s
35
- stomp_one_info = File.new(STOMP_1_INFO_PATH).to_s
36
- stomp_two_diff = File::new(STOMP_2_DIFF_PATH).to_s
37
- stomp_two_info = File.new(STOMP_2_INFO_PATH).to_s
38
-
39
- client_one = Client::new({:id=>CLIENT_ONE}.merge(@cfg))
40
- client_two = Client::new({:id=>CLIENT_TWO}.merge(@cfg))
41
- client_three = Client::new({:id=>CLIENT_THREE}.merge(@cfg))
42
-
43
- response = client_one.multi_diff [rails_diff, stomp_one_diff], [rails_info, stomp_one_info]
44
- assert_equal [], response
45
-
46
- response = client_one.multi_diff [stomp_two_diff], [stomp_two_info]
47
- assert_equal [], response
48
-
49
- response = client_one.multi_diff [stomp_one_diff], [stomp_one_info]
50
- assert_equal [], response
51
-
52
- response = client_three.multi_diff [rails_diff], [rails_info]
53
- assert_equal [], response
54
-
55
- client_one.revert rails_info
56
- client_two.revert rails_info
57
- client_three.revert rails_info
58
- @thread.kill
59
- @thread.join(5)
60
-
61
- end
62
-
63
- def test_dev_with_conflicts
64
- # this needs to get done
65
- end
66
-
67
- end
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ require 'test/unit'
19
+ require 'conflict'
20
+ include Conflict
21
+
22
+ class RoundTripMultiDiffTest < Test::Unit::TestCase
23
+ include ConflictConstants
24
+
25
+ def test_dev_with_no_conflicts
26
+
27
+ @cfg = {:port=>85}
28
+ @thread = Thread.new do
29
+ Server::new(@cfg).start
30
+ end
31
+
32
+ rails_diff = File.new("./test/data/rails.diff.txt").to_s
33
+ rails_info = File.new("./test/data/rails.info.txt").to_s
34
+ stomp_one_diff = File::new(STOMP_1_DIFF_PATH).to_s
35
+ stomp_one_info = File.new(STOMP_1_INFO_PATH).to_s
36
+ stomp_two_diff = File::new(STOMP_2_DIFF_PATH).to_s
37
+ stomp_two_info = File.new(STOMP_2_INFO_PATH).to_s
38
+
39
+ client_one = Client::new({:id=>CLIENT_ONE}.merge(@cfg))
40
+ client_two = Client::new({:id=>CLIENT_TWO}.merge(@cfg))
41
+ client_three = Client::new({:id=>CLIENT_THREE}.merge(@cfg))
42
+
43
+ response = client_one.multi_diff [rails_diff, stomp_one_diff], [rails_info, stomp_one_info]
44
+ assert_equal [], response
45
+
46
+ response = client_one.multi_diff [stomp_two_diff], [stomp_two_info]
47
+ assert_equal [], response
48
+
49
+ response = client_one.multi_diff [stomp_one_diff], [stomp_one_info]
50
+ assert_equal [], response
51
+
52
+ response = client_three.multi_diff [rails_diff], [rails_info]
53
+ assert_equal [], response
54
+
55
+ client_one.revert rails_info
56
+ client_two.revert rails_info
57
+ client_three.revert rails_info
58
+ @thread.kill
59
+ @thread.join(5)
60
+
61
+ end
62
+
63
+ def test_dev_with_conflicts
64
+ # this needs to get done
65
+ end
66
+
67
+ end