kerry
4 years ago
54 changed files with 399 additions and 843 deletions
@ -1,56 +0,0 @@
|
||||
package com.fr.design.mainframe.burying.point; |
||||
|
||||
import com.fr.design.mainframe.template.info.SendHelper; |
||||
import com.fr.design.mainframe.template.info.TemplateProcessInfo; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
import java.util.concurrent.ConcurrentHashMap; |
||||
|
||||
/** |
||||
* Created by kerry on 2020-09-04 |
||||
*/ |
||||
public abstract class AbstractTemplateInfoCollector<T extends AbstractPointInfo> extends AbstractPointCollector { |
||||
protected Map<String, T> pointInfoMap; |
||||
|
||||
public AbstractTemplateInfoCollector() { |
||||
pointInfoMap = new ConcurrentHashMap<>(); |
||||
loadFromFile(); |
||||
|
||||
} |
||||
|
||||
|
||||
/** |
||||
* 保存埋点的信息到本地 |
||||
*/ |
||||
public abstract void collectInfo(String templateID, String originID, TemplateProcessInfo processInfo, int timeConsume); |
||||
|
||||
@Override |
||||
public void sendPointInfo() { |
||||
|
||||
addIdleDayCount(); |
||||
|
||||
List<String> removeList = new ArrayList<>(); |
||||
List<String> sendList = new ArrayList<>(); |
||||
|
||||
for (String key : pointInfoMap.keySet()) { |
||||
BasePointInfo pointInfo = pointInfoMap.get(key); |
||||
pointInfo.selectPoint(removeList, sendList); |
||||
} |
||||
|
||||
// 发送记录
|
||||
for (String key : sendList) { |
||||
if(SendHelper.sendPointInfo(pointInfoMap.get(key))){ |
||||
removeList.add(key); |
||||
} |
||||
} |
||||
|
||||
// 清空记录
|
||||
for (String key : removeList) { |
||||
pointInfoMap.remove(key); |
||||
} |
||||
|
||||
saveInfo(); |
||||
} |
||||
|
||||
} |
@ -1,140 +0,0 @@
|
||||
package com.fr.design.mainframe.predefined.info; |
||||
|
||||
import com.fr.config.MarketConfig; |
||||
import com.fr.design.DesignerEnvManager; |
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.design.mainframe.burying.point.AbstractPointCollector; |
||||
import com.fr.design.mainframe.template.info.SendHelper; |
||||
import com.fr.general.CloudCenter; |
||||
import com.fr.general.ComparatorUtils; |
||||
import com.fr.general.GeneralUtils; |
||||
import com.fr.json.JSONObject; |
||||
import com.fr.stable.xml.XMLPrintWriter; |
||||
import com.fr.stable.xml.XMLableReader; |
||||
import com.fr.third.joda.time.DateTime; |
||||
|
||||
/** |
||||
* Created by kerry on 2020-09-04 |
||||
*/ |
||||
public class PredefinedStyleInfoCollector extends AbstractPointCollector { |
||||
//每三天上传一次
|
||||
private static final long DELTA = 3 * 24 * 3600 * 1000L; |
||||
|
||||
private static final String SIMPLE_DATE_PATTERN = "yyyy-MM-dd"; |
||||
private static final String XML_TAG = "PredefinedStyleInfo"; |
||||
private static final String XML_FILE_NAME = "predefinedStyle.info"; |
||||
private static final String CLOUD_URL = CloudCenter.getInstance().acquireUrlByKind("design.collector") + "/single"; |
||||
|
||||
private static final String FUNCTION_NAME = "predefinedStyle"; |
||||
private static final String FUNCTION_ID = "FR-F7003"; |
||||
|
||||
private static final String ATTR_FUNCTION_NAME = "functionName"; |
||||
private static final String ATTR_FUNCTION_ID = "functionId"; |
||||
private static final String ATTR_UUID = "uuid"; |
||||
private static final String ATTR_UID = "uid"; |
||||
private static final String ATTR_JAR_TIME = "jatTime"; |
||||
private static final String ATTR_CLICK_NUMBER = "clickNumber"; |
||||
private static final String ATTR_USE_NUMBER = "useNumber"; |
||||
private static final String ATTR_TIME = "time"; |
||||
private static final String XML_LAST_TIME = "lastSendTime"; |
||||
|
||||
/** |
||||
* 上一次的发送时间 |
||||
*/ |
||||
private long lastSendTime; |
||||
|
||||
private int clickNumber = 0; |
||||
|
||||
private int useNumber = 0; |
||||
|
||||
public int getClickNumber() { |
||||
return clickNumber; |
||||
} |
||||
|
||||
public int getUseNumber() { |
||||
return useNumber; |
||||
} |
||||
|
||||
private static class Holder { |
||||
private static PredefinedStyleInfoCollector collector = new PredefinedStyleInfoCollector(); |
||||
} |
||||
|
||||
private PredefinedStyleInfoCollector() { |
||||
loadFromFile(); |
||||
} |
||||
|
||||
public static PredefinedStyleInfoCollector getInstance() { |
||||
return Holder.collector; |
||||
} |
||||
|
||||
public void collectClickNumber() { |
||||
clickNumber++; |
||||
saveInfo(); |
||||
} |
||||
|
||||
public void collectUseNumber(String predefinedName) { |
||||
if (!ComparatorUtils.equals(Toolkit.i18nText("Fine-Engine_Predefined_Style_Compatibility"), predefinedName) && |
||||
!ComparatorUtils.equals(Toolkit.i18nText("Fine-Engine_Report_DEFAULT"), predefinedName)) { |
||||
useNumber++; |
||||
} |
||||
saveInfo(); |
||||
} |
||||
|
||||
@Override |
||||
protected String getInfoFilePath() { |
||||
return XML_FILE_NAME; |
||||
} |
||||
|
||||
@Override |
||||
protected void addIdleDayCount() { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void sendPointInfo() { |
||||
if (System.currentTimeMillis() - lastSendTime < DELTA) { |
||||
return; |
||||
} |
||||
String content = generateTotalInfo(); |
||||
SendHelper.sendSinglePointInfo(CLOUD_URL, content); |
||||
this.lastSendTime = System.currentTimeMillis(); |
||||
this.clickNumber = 0; |
||||
this.useNumber = 0; |
||||
saveInfo(); |
||||
} |
||||
|
||||
public String generateTotalInfo() { |
||||
|
||||
JSONObject jo = JSONObject.create(); |
||||
jo.put(ATTR_FUNCTION_NAME, FUNCTION_NAME); |
||||
jo.put(ATTR_FUNCTION_ID, FUNCTION_ID); |
||||
jo.put(ATTR_UUID, DesignerEnvManager.getEnvManager().getUUID()); |
||||
jo.put(ATTR_UID, MarketConfig.getInstance().getBBSAttr().getBbsUid()); |
||||
jo.put(ATTR_JAR_TIME, GeneralUtils.readFullVersionNO()); |
||||
jo.put(ATTR_CLICK_NUMBER, this.clickNumber); |
||||
jo.put(ATTR_USE_NUMBER, this.useNumber); |
||||
jo.put(ATTR_TIME, DateTime.now().toString(SIMPLE_DATE_PATTERN)); |
||||
return jo.toString(); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void readXML(XMLableReader reader) { |
||||
if (reader.isAttr()) { |
||||
String name = reader.getTagName(); |
||||
if (XML_TAG.equals(name)) { |
||||
this.clickNumber = reader.getAttrAsInt(ATTR_CLICK_NUMBER, 0); |
||||
this.useNumber = reader.getAttrAsInt(ATTR_USE_NUMBER, 0); |
||||
this.lastSendTime = reader.getAttrAsLong(XML_LAST_TIME, System.currentTimeMillis()); |
||||
} |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void writeXML(XMLPrintWriter writer) { |
||||
writer.startTAG(XML_TAG); |
||||
writer.attr(ATTR_CLICK_NUMBER, this.clickNumber).attr(ATTR_USE_NUMBER, this.useNumber) |
||||
.attr(XML_LAST_TIME, this.lastSendTime); |
||||
writer.end(); |
||||
} |
||||
} |
@ -1,59 +1,197 @@
|
||||
package com.fr.design.style.background.impl; |
||||
|
||||
import com.fr.base.GraphHelper; |
||||
import com.fr.base.background.TextureBackground; |
||||
import com.fr.design.layout.FRGUIPaneFactory; |
||||
import com.fr.design.style.background.BackgroundDetailPane; |
||||
import com.fr.design.style.background.texture.TextureDetailPane; |
||||
import com.fr.general.Background; |
||||
import com.fr.general.ComparatorUtils; |
||||
|
||||
|
||||
import javax.swing.BorderFactory; |
||||
import javax.swing.JPanel; |
||||
import javax.swing.*; |
||||
import javax.swing.event.ChangeEvent; |
||||
import javax.swing.event.ChangeListener; |
||||
import java.awt.BorderLayout; |
||||
import java.awt.*; |
||||
import java.awt.event.ActionEvent; |
||||
import java.awt.event.ActionListener; |
||||
import java.awt.geom.Rectangle2D; |
||||
|
||||
/** |
||||
* Texture background pane. TODO kunsnat: 拆出去. 真特么的长.. |
||||
*/ |
||||
public class TextureBackgroundPane extends BackgroundDetailPane { |
||||
|
||||
|
||||
private TextureDetailPane detailPane; |
||||
public class TextureBackgroundPane extends BPane { |
||||
|
||||
private static final TexturePaint[] EMBED_TEXTURE_PAINT_ARRAY = new TexturePaint[]{ |
||||
TextureBackground.NEWSPRINT_TEXTURE_PAINT, |
||||
TextureBackground.RECYCLED_PAPER_TEXTURE_PAINT, |
||||
TextureBackground.PARCHMENT_TEXTURE_PAINT, |
||||
TextureBackground.STATIONERY_TEXTURE_PAINT, |
||||
TextureBackground.GREEN_MARBLE_TEXTURE_PAINT, |
||||
TextureBackground.WHITE_MARBLE_TEXTURE_PAINT, |
||||
TextureBackground.BROWN_MARBLE_TEXTURE_PAINT, |
||||
TextureBackground.GRANITE_TEXTURE_PAINT, |
||||
TextureBackground.BLUE_TISSUE_PAPER_TEXTURE_PAINT, |
||||
TextureBackground.PINK_TISSUE_PAPER_TEXTURE_PAINT, |
||||
TextureBackground.PURPLE_MESH_TEXTURE_PAINT, |
||||
TextureBackground.BOUQUET_TEXTURE_PAINT, |
||||
TextureBackground.PAPYRUS_TEXTURE_PAINT, |
||||
TextureBackground.CANVAS_TEXTURE_PAINT, |
||||
TextureBackground.DENIM_TEXTURE_PAINT, |
||||
TextureBackground.WOVEN_MAT_TEXTURE_PAINT, |
||||
TextureBackground.WATER_DROPLETS_TEXTURE_PAINT, |
||||
TextureBackground.PAPER_BAG_TEXTURE_PAINT, |
||||
TextureBackground.FISH_FOSSIL_TEXTURE_PAINT, |
||||
TextureBackground.SAND_TEXTURE_PAINT, |
||||
TextureBackground.CORK_TEXTURE_PAINT, |
||||
TextureBackground.WALNUT_TEXTURE_PAINT, |
||||
TextureBackground.OAK_TEXTURE_PAINT, |
||||
TextureBackground.MEDIUM_WOOD_TEXTURE_PAINT}; |
||||
|
||||
private static final String[] EMBED_TEXTURE_PAINT_DES_ARRAY = new String[]{ |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Newsprint"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Recycled_Paper"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Parchment"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Stationery"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Green_Marble"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_White_Marble"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Brown_Marble"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Granite"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Blue_Tissue_Paper"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Pink_Tissue_Paper"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Purple_Mesh"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Bouquet"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Papyrus"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Canvas"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Denim"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Woven_Mat"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Water_Droplets"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_PaperBag"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_FishFossil"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Sand"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Cork"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Walnut"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Oak"), |
||||
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture_Medium_Wood") |
||||
}; |
||||
|
||||
private TexturePaint texturePaint; |
||||
private TextureButton[] textureButtonArray; |
||||
|
||||
public TextureBackgroundPane() { |
||||
this(8);// 默认的.
|
||||
super(8);// 默认的.
|
||||
} |
||||
|
||||
public TextureBackgroundPane(int column) { |
||||
this.detailPane = TextureDetailPane.createNormalTextureDetailPane(column); |
||||
this.setLayout(FRGUIPaneFactory.createBorderLayout()); |
||||
this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); |
||||
|
||||
JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); |
||||
this.add(contentPane, BorderLayout.NORTH); |
||||
|
||||
JPanel typePane = FRGUIPaneFactory.createTitledBorderPane(titleOfTypePane()); |
||||
contentPane.add(typePane); |
||||
typePane.add(this.detailPane); |
||||
public TextureBackgroundPane(int colum) { |
||||
super(colum);// 自定义的.
|
||||
} |
||||
|
||||
|
||||
protected LayoutManager layoutOfTypePane(int nColumn) { |
||||
return FRGUIPaneFactory.createNColumnGridLayout(nColumn); |
||||
} |
||||
|
||||
protected String titleOfTypePane() { |
||||
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Background_Texture"); |
||||
} |
||||
|
||||
protected void setChildrenOfTypePane(JPanel typePane2) { |
||||
ButtonGroup patternButtonGroup = new ButtonGroup(); |
||||
textureButtonArray = new TextureButton[EMBED_TEXTURE_PAINT_ARRAY.length]; |
||||
for (int i = 0; i < EMBED_TEXTURE_PAINT_ARRAY.length; i++) { |
||||
textureButtonArray[i] = new TextureButton( |
||||
EMBED_TEXTURE_PAINT_ARRAY[i], EMBED_TEXTURE_PAINT_DES_ARRAY[i]); |
||||
patternButtonGroup.add(textureButtonArray[i]); |
||||
typePane2.add(textureButtonArray[i]); |
||||
} |
||||
} |
||||
|
||||
public void populate(Background background) { |
||||
this.detailPane.populate(background); |
||||
if (background instanceof TextureBackground) { |
||||
TextureBackground textureBackground = (TextureBackground) background; |
||||
|
||||
this.texturePaint = textureBackground.getTexturePaint(); |
||||
|
||||
for (int i = 0; i < textureButtonArray.length; i++) { |
||||
if (ComparatorUtils.equals(textureButtonArray[i].getTexturePaint(), this.texturePaint)) { |
||||
textureButtonArray[i].setSelected(true); |
||||
break; |
||||
} |
||||
} |
||||
} else { |
||||
this.textureButtonArray[0].setSelected(true); |
||||
this.texturePaint = textureButtonArray[0].getTexturePaint(); |
||||
} |
||||
} |
||||
|
||||
public Background update() throws Exception { |
||||
return this.detailPane.update(); |
||||
return new TextureBackground(this.texturePaint); |
||||
} |
||||
|
||||
@Override |
||||
public void addChangeListener(ChangeListener changeListener) { |
||||
this.detailPane.addChangeListener(changeListener); |
||||
for (int i = 0; i < this.textureButtonArray.length; i++) { |
||||
this.textureButtonArray[i].addChangeListener(changeListener); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Texture type button. |
||||
*/ |
||||
class TextureButton extends JToggleButton implements ActionListener { |
||||
|
||||
private TexturePaint buttonTexturePaint; |
||||
|
||||
public TextureButton(TexturePaint buttonTexturePaint, String tooltip) { |
||||
this.buttonTexturePaint = buttonTexturePaint; |
||||
this.setToolTipText(tooltip); |
||||
|
||||
this.setCursor(new Cursor(Cursor.HAND_CURSOR)); |
||||
this.addActionListener(this); |
||||
this.setBorder(null); |
||||
} |
||||
|
||||
public void paintComponent(Graphics g) { |
||||
Graphics2D g2d = (Graphics2D) g; |
||||
|
||||
Dimension d = getSize(); |
||||
|
||||
g2d.setPaint(this.buttonTexturePaint); |
||||
GraphHelper.fill(g2d, new Rectangle2D.Double(0, 0, d.width - 1d, |
||||
d.height - 1d)); |
||||
|
||||
if (ComparatorUtils.equals(texturePaint, this.buttonTexturePaint)) {// it's
|
||||
// selected.
|
||||
g2d.setPaint(Color.black); |
||||
} else { |
||||
g2d.setPaint(Color.gray); |
||||
} |
||||
GraphHelper.draw(g2d, new Rectangle2D.Double(0, 0, d.width - 1d, |
||||
d.height - 1d)); |
||||
} |
||||
|
||||
public Dimension getPreferredSize() { |
||||
return new Dimension(36, 32); |
||||
} |
||||
|
||||
public TexturePaint getTexturePaint() { |
||||
return this.buttonTexturePaint; |
||||
} |
||||
|
||||
/** |
||||
* set Pattern setIndex. |
||||
*/ |
||||
public void actionPerformed(ActionEvent evt) { |
||||
TextureBackgroundPane.this.texturePaint = this.getTexturePaint(); |
||||
|
||||
fireChagneListener(); |
||||
TextureBackgroundPane.this.repaint(); // repaint.
|
||||
} |
||||
|
||||
public void addChangeListener(ChangeListener changeListener) { |
||||
this.changeListener = changeListener; |
||||
} |
||||
|
||||
private void fireChagneListener() { |
||||
if (this.changeListener != null) { |
||||
ChangeEvent evt = new ChangeEvent(this); |
||||
this.changeListener.stateChanged(evt); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
@ -1,59 +0,0 @@
|
||||
package com.fr.design.utils; |
||||
|
||||
import com.fr.event.Event; |
||||
import com.fr.event.EventDispatcher; |
||||
import com.fr.event.Listener; |
||||
import com.fr.log.FineLoggerFactory; |
||||
import com.fr.rpc.ExceptionHandler; |
||||
import com.fr.rpc.RPCInvokerExceptionInfo; |
||||
import com.fr.workspace.WorkContext; |
||||
import com.fr.workspace.Workspace; |
||||
import com.fr.workspace.WorkspaceEvent; |
||||
import com.fr.workspace.server.predefined.PredefinedStyleOperator; |
||||
|
||||
/** |
||||
* Created by kerry on 2020-11-06 |
||||
*/ |
||||
public class PredefinedStyleUtils { |
||||
/** |
||||
* 判断当前环境是否支持预定义样式的设置 |
||||
*/ |
||||
private static Boolean allowPredefinedSetting = null; |
||||
|
||||
static { |
||||
EventDispatcher.listen(WorkspaceEvent.AfterSwitch, new Listener<Workspace>() { |
||||
@Override |
||||
public void on(Event event, Workspace param) { |
||||
allowPredefinedSetting = checkAllowPredefinedSetting(); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
/** |
||||
* 判断当前环境是否支持预定义样式的设置 |
||||
* @return boolean |
||||
*/ |
||||
public synchronized static boolean isAllowPredefinedSetting() { |
||||
if (allowPredefinedSetting == null) { |
||||
allowPredefinedSetting = checkAllowPredefinedSetting(); |
||||
} |
||||
return allowPredefinedSetting; |
||||
} |
||||
|
||||
private PredefinedStyleUtils() { |
||||
|
||||
} |
||||
|
||||
private static boolean checkAllowPredefinedSetting() { |
||||
if (WorkContext.getCurrent().isLocal()) { |
||||
return true; |
||||
} |
||||
return WorkContext.getCurrent().get(PredefinedStyleOperator.class, new ExceptionHandler() { |
||||
@Override |
||||
public Object callHandler(RPCInvokerExceptionInfo exceptionInfo) { |
||||
FineLoggerFactory.getLogger().error(exceptionInfo.getException().getMessage(), exceptionInfo.getException()); |
||||
return false; |
||||
} |
||||
}).allowPredefinedSetting(); |
||||
} |
||||
} |
@ -1,97 +0,0 @@
|
||||
package com.fr.design.mainframe.predefined.info; |
||||
|
||||
import com.fr.config.BBSAttr; |
||||
import com.fr.config.MarketConfig; |
||||
import com.fr.design.DesignerEnvManager; |
||||
import com.fr.general.GeneralUtils; |
||||
import com.fr.json.JSON; |
||||
import com.fr.json.JSONFactory; |
||||
import com.fr.json.JSONObject; |
||||
import com.fr.stable.ProductConstants; |
||||
import com.fr.third.org.apache.commons.io.FileUtils; |
||||
import org.easymock.EasyMock; |
||||
import org.junit.After; |
||||
import org.junit.Assert; |
||||
import org.junit.Before; |
||||
import org.junit.Test; |
||||
import org.junit.runner.RunWith; |
||||
import org.powermock.api.easymock.PowerMock; |
||||
import org.powermock.core.classloader.annotations.PrepareForTest; |
||||
import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; |
||||
import org.powermock.modules.junit4.PowerMockRunner; |
||||
import java.io.File; |
||||
import java.io.IOException; |
||||
|
||||
/** |
||||
* Created by kerry on 2020-09-05 |
||||
*/ |
||||
@RunWith(PowerMockRunner.class) |
||||
@PrepareForTest({ProductConstants.class, MarketConfig.class, DesignerEnvManager.class, GeneralUtils.class}) |
||||
@SuppressStaticInitializationFor({"com.fr.jvm.assist.FineAssist"}) |
||||
public class PredefinedStyleInfoCollectorTest { |
||||
private String filePath; |
||||
private String initialFileContent; |
||||
|
||||
|
||||
@Before |
||||
public void setUp() throws IOException { |
||||
PowerMock.mockStatic(ProductConstants.class); |
||||
|
||||
filePath = getClass().getResource("predefinedStyle.info").getPath(); |
||||
String dirPath = filePath.substring(0, filePath.indexOf("predefinedStyle.info")); |
||||
EasyMock.expect(ProductConstants.getEnvHome()).andReturn(dirPath).anyTimes(); |
||||
|
||||
EasyMock.replay(); |
||||
PowerMock.replayAll(); |
||||
initialFileContent = FileUtils.readFileToString(new File(filePath), "utf-8"); |
||||
} |
||||
|
||||
@After |
||||
public void tearDown() throws IOException { |
||||
FileUtils.writeStringToFile(new File(filePath), initialFileContent, "utf-8"); |
||||
} |
||||
|
||||
@Test |
||||
public void testCollectClickNumber() { |
||||
PredefinedStyleInfoCollector.getInstance().collectClickNumber(); |
||||
Assert.assertEquals(1, PredefinedStyleInfoCollector.getInstance().getClickNumber()); |
||||
} |
||||
|
||||
@Test |
||||
public void testCollectUseNumber() { |
||||
PredefinedStyleInfoCollector.getInstance().collectUseNumber("test"); |
||||
Assert.assertEquals(1, PredefinedStyleInfoCollector.getInstance().getUseNumber()); |
||||
} |
||||
|
||||
@Test |
||||
public void testGenerateTotalInfo() { |
||||
PowerMock.mockStatic(DesignerEnvManager.class); |
||||
PowerMock.mockStatic(MarketConfig.class); |
||||
PowerMock.mockStatic(GeneralUtils.class); |
||||
|
||||
DesignerEnvManager envManager = EasyMock.mock(DesignerEnvManager.class); |
||||
EasyMock.expect(envManager.getUUID()).andReturn("xxxxx-12345-xxxxx").once(); |
||||
EasyMock.expect(DesignerEnvManager.getEnvManager()).andReturn(envManager).once(); |
||||
|
||||
|
||||
MarketConfig marketConfig = EasyMock.mock(MarketConfig.class); |
||||
BBSAttr bbsAttr = new BBSAttr(); |
||||
bbsAttr.setBbsUid(12345); |
||||
EasyMock.expect(marketConfig.getBBSAttr()).andReturn(bbsAttr).once(); |
||||
EasyMock.expect(MarketConfig.getInstance()).andReturn(marketConfig).once(); |
||||
|
||||
EasyMock.expect(GeneralUtils.readFullVersionNO()).andReturn("10.0.9.2020.0817.final"); |
||||
|
||||
EasyMock.replay(envManager, marketConfig); |
||||
|
||||
PowerMock.replayAll(); |
||||
String content = PredefinedStyleInfoCollector.getInstance().generateTotalInfo(); |
||||
JSONObject jsonObject = JSONFactory.createJSON(JSON.OBJECT, content); |
||||
Assert.assertEquals("predefinedStyle", jsonObject.getString("functionName")); |
||||
Assert.assertEquals("FR-F7003", jsonObject.getString("functionId")); |
||||
Assert.assertEquals("xxxxx-12345-xxxxx", jsonObject.getString("uuid")); |
||||
Assert.assertEquals(12345, jsonObject.getInt("uid")); |
||||
Assert.assertEquals("10.0.9.2020.0817.final", jsonObject.getString("jatTime")); |
||||
} |
||||
|
||||
} |
@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<PredefinedStyleInfo xmlVersion="20170720" releaseVersion="10.0.0" clickNumber="0" useNumber="0"/> |
Loading…
Reference in new issue