@@ -236,6 +236,85 @@ class RenameTest {
236236
237237 }
238238
239+ @ Test def renameValMultiProject : Unit = {
240+ def testRename (m : CodeMarker , expectations : Set [CodeRange ]) = {
241+ val p0 = Project .withSources(
242+ code """ object A { val ${m1}foo ${m2} = 0 } """
243+ )
244+
245+ val p1 = Project .dependingOn(p0).withSources(
246+ code """ object B { val ${m3}bar ${m4} = A. ${m5}foo ${m6} } """
247+ )
248+
249+ val p2 = Project .dependingOn(p1).withSources(
250+ code """ object C { val ${m7}baz ${m8} = A. ${m9}foo ${m10} + B. ${m11}bar ${m12} } """
251+ )
252+
253+ withProjects(p0, p1, p2).rename(m, " NewName" , expectations)
254+ }
255+
256+ testRename(m1, Set (m1 to m2, m5 to m6, m9 to m10))
257+ testRename(m5, Set (m1 to m2, m5 to m6, m9 to m10))
258+ testRename(m9, Set (m1 to m2, m5 to m6, m9 to m10))
259+
260+ testRename(m3, Set (m3 to m4, m11 to m12))
261+ testRename(m11, Set (m3 to m4, m11 to m12))
262+
263+ testRename(m7, Set (m7 to m8))
264+ }
265+
266+ @ Test def renameClassMultiProject : Unit = {
267+ val m21 = new CodeMarker (" m21" )
268+ val m22 = new CodeMarker (" m22" )
269+ val m23 = new CodeMarker (" m23" )
270+ val m24 = new CodeMarker (" m24" )
271+ val m25 = new CodeMarker (" m25" )
272+ val m26 = new CodeMarker (" m26" )
273+ val m27 = new CodeMarker (" m27" )
274+ val m28 = new CodeMarker (" m28" )
275+ def testRename (m : CodeMarker , expectations : Set [CodeRange ]) = {
276+ val p0 = Project .withSources(
277+ code """ package a
278+ object ${m1}A ${m2} { class ${m3}B ${m4} } """
279+ )
280+
281+ val p1 = Project .dependingOn(p0).withSources(
282+ code """ package b
283+ import a. ${m5}A ${m6}.{ ${m7}B ${m8} => ${m9}AB ${m10}}
284+ object ${m11}B ${m12} { class ${m13}C ${m14} extends ${m15}AB ${m16} } """
285+ )
286+
287+ val p2 = Project .dependingOn(p1).withSources(
288+ code """ package c
289+ import b. ${m17}B ${m18}.{ ${m19}C ${m20} => ${m21}BC ${m22}}
290+ object ${m23}C ${m24} { class ${m25}D ${m26} extends ${m27}BC ${m28} } """
291+ )
292+
293+ withProjects(p0, p1, p2).rename(m, " NewName" , expectations)
294+ }
295+
296+ testRename(m1, Set (m1 to m2, m5 to m6))
297+ testRename(m5, Set (m1 to m2, m5 to m6))
298+
299+ testRename(m3, Set (m3 to m4, m7 to m8))
300+ testRename(m7, Set (m3 to m4, m7 to m8))
301+
302+ testRename(m9, Set (m9 to m10, m15 to m16))
303+ testRename(m15, Set (m9 to m10, m15 to m16))
239304
305+ testRename(m11, Set (m11 to m12, m17 to m18))
306+ testRename(m17, Set (m11 to m12, m17 to m18))
307+
308+ testRename(m13, Set (m13 to m14, m19 to m20))
309+ testRename(m19, Set (m13 to m14, m19 to m20))
310+
311+ testRename(m21, Set (m21 to m22, m27 to m28))
312+ testRename(m27, Set (m21 to m22, m27 to m28))
313+
314+ testRename(m23, Set (m23 to m24))
315+
316+ testRename(m25, Set (m25 to m26))
317+
318+ }
240319
241320}
0 commit comments