From b9649ef5c9bdc970d74d0f1fc44ff475af240c99 Mon Sep 17 00:00:00 2001
From: kaloyane <kaloyane>
Date: Tue, 25 Oct 2011 14:51:53 +0000
Subject: [PATCH] fix: the toWellIdString() should also work for large 32x48
 plates

SVN: 23426
---
 .../shared/basic/dto/WellLocation.java        |  8 ++-----
 .../shared/basic/dto/WellLocationTest.java    | 21 ++++++++++++++++++-
 2 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java
index 4b6dc6f56dc..97b808cfb0d 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocation.java
@@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ServiceVersionHolder;
+import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.PlateUtils;
 
 /**
  * Describes position of the well on the plate.
@@ -243,12 +244,7 @@ public class WellLocation implements ISerializable
 
     public String toWellIdString()
     {
-        return getNumberLetter(row) + column;
-    }
-
-    private String getNumberLetter(@SuppressWarnings("hiding") int row)
-    {
-        return Character.toString((char) ((char) row + 'A' - (char) 1));
+        return PlateUtils.translateRowNumberIntoLetterCode(row) + column;
     }
 
     @Override
diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java
index a67d0f73150..f257f1477cb 100644
--- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java
+++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/shared/basic/dto/WellLocationTest.java
@@ -31,7 +31,7 @@ public class WellLocationTest
 {
 
     @DataProvider(name = "valid spreadsheet locations")
-    public Object[][] provideCorrectData()
+    Object[][] provideCorrectData()
     {
         return new Object[][]
             {
@@ -56,6 +56,25 @@ public class WellLocationTest
                 .toString(row), Integer.toString(col)));
     }
 
+    @DataProvider(name = "valid well ids")
+    Object[][] provideWellIdStrings()
+    {
+        return new Object[][]
+            {
+                { "A1", 1, 1 },
+                { "A123", 1, 123 },
+                { "B9", 2, 9 },
+                { "C23", 3, 23 },
+                { "AA1", 27, 1 },
+                { "ZZ1000", 26 * 26 + 26, 1000 } };
+    }
+
+    @Test(dataProvider = "valid well ids")
+    public void testGetWellIdString(String location, int row, int col)
+    {
+        assertEquals(location, new WellLocation(row, col).toWellIdString());
+    }
+
     @Test
     public void testParseLocationStrWithEmptyString()
     {
-- 
GitLab